https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70222
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2016-03-14 Ever confirmed|0 |1 Known to fail| |4.0.4, 4.1.2, 4.2.4, 4.3.6 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. -O2 is fine again. void abort (void); int a = 1; unsigned int b = 2; int c = 0; int d = 0; void foo () { int e = ((-(c >= c)) < b) > ((int)(((unsigned long long int)(-1)) >> ((a / a) * 15))); d = -e; } int main () { foo (); if (d != -1) abort (); return 0; }