https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93241
--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- I think this is actually a regression in 4.5 and later relative to 4.4. It can be demonstrated in older versions using a different test, with -std=c99 -pedantic-errors. #include <limits.h> struct s { int a: 0? (_Bool)(INT_MAX+1) : 1; }; I'll look at fixing this, since I'm familiar with the integer constant expression handling.