https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69161
--- Comment #10 from ktkachov at gcc dot gnu.org --- Sorry. Of course you meant "int *". That still ICEs: char a; int b, c, d, e; void foo (void) { int f; for (f = 0; f <= 4; f++) { for (d = 0; d < 20; d++) { int *g = &c; b &= (0 != g) > e; } e &= a; } }