https://gcc.gnu.org/bugzilla/show_bug.cgi?id=18063
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed|2005-09-18 01:37:52 |2016-5-17 CC| |msebor at gcc dot gnu.org Known to fail| |3.4.2, 5.3.0, 6.1.0, 7.0 --- Comment #7 from Martin Sebor <msebor at gcc dot gnu.org> --- Reconfirmed with today's trunk (7.0), 6.1.0, and all prior supported versions. It seems that it shouldn't be too hard to diagnose either the definition of the struct or the sizeof expression. $ cat uu.c && /build/gcc-trunk-svn/gcc/xgcc -B /build/gcc-trunk-svn/gcc -Wall -Wextra -Wpedantic -m32 uu.c && ./a.out struct a { char x[0x7fffffff]; char b[0x7fffffff]; char c[3]; }; int main() { __builtin_printf ("%zu\n", sizeof (struct a)); _Static_assert (sizeof (struct a) > sizeof ((struct a*)0)->x, ""); } uu.c: In function ‘main’: uu.c:10:37: warning: expression in static assertion is not an integer constant expression [-Wpedantic] _Static_assert (sizeof (struct a) > sizeof ((struct a*)0)->x, ""); ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ uu.c:10:3: error: static assertion failed: "" _Static_assert (sizeof (struct a) > sizeof ((struct a*)0)->x, ""); ^~~~~~~~~~~~~~