https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69352
--- Comment #4 from Jan Smets <jan.sm...@alcatel-lucent.com> --- compile with : -xc -c pr69352.best -w -o /dev/null -O1 $ cat pr69352.best typedef enum { REG_HSTRH, REG_HSTRL, REG_HFAERH, REG_HFAERL, REG_HIMRH, REG_HIMRL, REG_HCMRH, REG_HCMRL, REG_HADDRH, REG_HADDRL, REG_HGPRH, REG_HGPRL, REG_HWRBFSRH, REG_HRBCF, REG_MAX } DLLA; a[][REG_MAX]; b, c, d, e, f, g, h, i; fn1(p1) { unsigned j; int k = 0, l; DLLA m; if (h) m = REG_HWRBFSRH; else m = REG_HRBCF; if (a[p1][m]) l = fn1; a[p1][i] = l; while (c) { if (b) { if (f) k = 1; fn2(); } for (; d;) j++; } while (c) { if (a[p1][REG_HWRBFSRH]) { if (g) k = 1; j++; } c = e; } return k; }