https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106155
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> --- The following variant warns with all GCC releases I tested (and -fno-ivopts fixes it), not exposing a mitigating jump threading opportunity: int *e; int f1 (void); void f2 (int); long f3 (void *, long, int *); void f4 (void *); int *fh; void tst (void) { int status; unsigned char badData[5][5] = { { 7 }, { 16 }, { 23 } }; int badDataSize[5] = { 1, 1, 1 }; int i; for (i = 0; i < 5; i++) { int emax; if (i == 2) emax = f1 (); status = f3 (&badData[i][0], badDataSize[i], fh); if (status) { f1 (); f1 (); f1 (); } f4 (fh); *e = 0; f1 (); if (i >= 2) f2 (emax); } }