https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97701
--- Comment #5 from Alex Coplan <acoplan at gcc dot gnu.org> --- Perhaps more conveniently, simply changing the 0 to a 1 on the RHS of the ternary operator, the following testcase still ICEs at -O3 on trunk: extern char a[][12][18][17][17]; extern short b[][12][18][17][17]; extern int c[][2][8][7]; short *d; void e(signed f, int g, char h, char i, char j) { for (int k = 648; k; k += f) for (short l; l < j; l += 9) for (long m = f + 6LL; m < (h ? h : i); m += 2) for (int n = 0; n < 16; n += 3LL) { for (int o = g; o; o++) a[k][l][m][n][o] = b[k][l][m][n][o] = d[k] ? 2 : 1; c[k][l][m][0] = 0; } }