https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109093
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Reduced testcase (unfortunately reduced into a form which is x86_64-linux specific unless I want success to be an endless loop) with -O2 -mavx -mtune=znver1 -ftrivial-auto-var-init=zero: int a, b, c, d, e, f, g, h, i, j, k; int *m; int **l = &m; static void bar (void) { l: if (j) for (;;) ; short q[3]; if (g) goto l; for (; k; k -= 1) { int *r = &g; *r = i; for (f = 0; f <= 6; f += 1) { if (*l) { d += 1; for (; d;) ; } if (e) break; } } } __attribute__((noipa)) void foo (int *x) { int n; long o = 1; if (*x) { bar (); ++o; n = a / o; } h |= n; for (;;) { int *p[4]; *l = x; for (b = 0; b <= 2; b += 1) if (c) { asm ("pushq %rbp; xorl %edi, %edi; movq %rsp, %rbp; andq $-16, %rsp; call exit"); break; } else *m = 0; } } int main () { int x = 1; c = 1; foo (&x); return 0; } Started (or perhaps no longer latent) since r13-4839-geef81eefcdc2a58111e50eb21.