https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66618
--- Comment #3 from Keith Thompson <Keith.S.Thompson at gmail dot com> --- It would be easier to argue that gcc accepts "other forms of constant expressions" if (a) those other forms were documented and (b) they were accepted at all optimization levels. Admittedly the standard doesn't seem to require such documentation (which I find a little surprising), and you could argue that "gcc -O0" and "gcc -O1" are two different implementations.