https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107257
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|needs-bisection | Component|c |target Host| |x86_64-linux-gnu Summary|Wrong code at -O2 on |[13 Regression] Wrong code |x86_64-linux-gnu |at -O2 on x86_64-linux-gnu | |since | |r13-857-gf1652e3343b1ec47 Target Milestone|--- |13.0 Priority|P3 |P1 CC| |sayle at gcc dot gnu.org --- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> --- Thanks, a bit modified: cat pr107257.c int a, b, c; int d[3]; int e(int f, int g, int k, int l, int m, int n) { int h = 4 * f + 2 * (g + l + n) + k + m, j = h >> 4; return j; } void o(int f) { int i = 0; for (; i < 3; i++) d[i] = 4279432140; for (; - 72 + f - -72 <= 2; f++) { a = 2; for (; a >= 0; a--) { b = 2; for (; b >= 0; b--) { int p = !(d[b] > 0 != e(10, 29, 42, 74, 89, -68) + f - 15); if (p) break; } if (f) break; } } } void q() { int i = 0; o(0); if (c) for (; i < 1;) for (; i < 1; i++) ; } int main() { q(); __builtin_printf("%d\n", b); if (b != -1) __builtin_abort (); } Started with r13-857-gf1652e3343b1ec47.