http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53091
--- Comment #12 from joseph at codesourcery dot com <joseph at codesourcery dot com> 2012-04-24 14:25:06 UTC --- There is no requirement to accept this static initializer, but the code does try to be lax about constants in initializers (there is no requirement to reject it either) and fold them with c_fully_fold (see c-typeck.c:digest_init). So it may make sense to look at why this laxity isn't causing this code to be accepted.