https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113607
--- Comment #6 from Patrick O'Neill <patrick at rivosinc dot com> --- I think I may have messed up when copy/pasting the testcase. Please try this testcase: struct { signed b; } c, d = {6}; short e, f; int g[1000]; signed char h; int i, j; long k, l; long m(long n, long o) { if (n < 1 && o == 0) return 0; return n; } static int p() { long q = 0; int a = 0; for (; e < 2; e += 1) g[e * 7 + 1] = 2637287069; for (; h < 1; h += 1) { k = g[8] || f; l = m(g[f * 7 + 1], k); a = l; j = a < 0 || g[f * 7 + 1] < 0 || g[f * 7 + 1] >= 32 ? a : a << g[f * 7 + 1]; if (j) ++q; } if (q) c = d; return i; } int main() { p(); if (c.b == 6) return 0; else return 1; }