https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94567
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |marxin at gcc dot gnu.org Summary|wrong code at -O2 and -O3 |[10 Regression] wrong code |on x86_64-linux-gnu |at -O2 and -O3 on | |x86_64-linux-gnu Known to work| |9.3.0 Known to fail| |10.0 Last reconfirmed| |2020-04-14 Ever confirmed|0 |1 Priority|P3 |P1 Target Milestone|--- |10.0 Status|UNCONFIRMED |ASSIGNED --- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> --- Confirmed, slightly modified test-case: $ cat pr94567.c volatile int a = 1, b; short c, d = 4, e = 53736, f = 2, g; int(h)(int i, int j) { return i && j ? 0 : i + j; } int main() { for (; a; a = 0) { unsigned short k = e; g = k >> 3; if (h(g < (f || c), b)) d = 0; } if (d != 4) __builtin_abort(); }