https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102511
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2021-09-28 Ever confirmed|0 |1 --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is a single file version which shows the problem in the latest trunk: #include <stdio.h> extern char arr_15[]; __attribute__((noipa)) void test(signed char a, unsigned short b, unsigned long long c, unsigned short f) { for (int d = b - 8; d < b; d += 2) for (short e = 0; e < (unsigned short)((f ? 122 : 0) ^ (a ? c : 0)) - 64055; e += 3) arr_15[d] = 42; } char arr_15 [8]; void test(signed char a, unsigned short b, unsigned long long int c, unsigned short f); int main() { test(37, 8, 12325048486467861044ULL, 45936); for (size_t i_0 = 0; i_0 < 8; ++i_0) printf("%d ", arr_15 [i_0]); printf("\n"); } ------------------- CUT ------------ Confirmed; I will change it to one which aborts in a few minutes.