http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49926
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-07-31 22:51:30 UTC --- Actually, that was over-simplified, that crashed just at r173856 and a few hundred revisions afterwards, this fails even with current trunk at -O3: int a, b, c[10]; void foo (unsigned int x, int y, int z, int *w) { do { *w = z; y = x; if (y) for (b = -4; b; b++) { z = y &= a &= 1; y &= c[b + 4]; } } while (1); }