http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57793
--- Comment #5 from Paolo Carlini <paolo.carlini at oracle dot com> --- Note that something like this ICEs the C compiler too: struct A { _Bool a : 1; _Bool b : 1; }; struct B { unsigned char c[0x40000000]; unsigned char d[0x40000ff0]; struct A e; }; void *foo (struct B *p) { if (p->e.a) return (void *) 0; p->e.b = 1; return p->c; } void bar (struct B *p) { foo (p); } thus I wonder if the check belongs to the front-end(s) or not. Opinions?