https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98513
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- Even more reduced test-case: $ cat combined.cc unsigned var; unsigned array[2]; int zero = 0, minus_2 = -2; const int &max(const int &a, const int &b) { return a > b ? a : b; } void test(int minus_1) { for (unsigned i_0 = 0; i_0 < 2; i_0++) { for (int i_3 = 0; i_3 < zero; i_3++) for (int i_4 = 0; i_4 < 2; i_4++) var = max(minus_1, 0); for (int i_6 = minus_2 + 2; i_6 < minus_1 + 3; i_6++) array[i_6] = zero; } } int main() { test(-1); }