https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113571
--- Comment #3 from Halalaluyafail3 <luigighiron at gmail dot com> --- The way the standard is written doesn't make any distinction between a preprocessor constant expression and a language constant expression (from what I have seen). The standard just says integral constant expression, and this term is used both inside of the preprocessor and outside of the preprocessor; for example the value of an enumerator. I don't see anything in the standard would make the examples I provided invalid in a preprocessor if so I would expect them to be valid.