https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99145
--- Comment #3 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> --- Initially it is creating the very large string in the frontend passes and then via resolution and translation phases, and finally into the middle-end and back end phases where it I am guessing the optimizers are realizing the simplifications. It is a known that some of these special cases are not recognized in the front end and immediately reduced. In this case it is creating a literal constant that big. Normally a program would be attempting to use the parameter in more than one place in which case it is literally substituted in. Should we mark this as invalid?