https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117278
--- Comment #3 from Davide Italiano <dccitaliano at gmail dot com> --- Another example that I found while looking at this: int f(int* a) { int sum = *a; for (int i = 0; i < 10; i++) { if (i % 2 == 0 && (i > 3 || *a < 5)) { for (int j = 0; j < 5; j++) { if (j > 2 && sum > 0) { sum += i + j; } for (int k = 0; k < 3; k++) { if ((k * j) % 2 != 0 && i > 5) { sum -= k; } if (k > 1 && j < 4 && (sum % (i + 1)) == 0) { sum += k * j; } } } } } return sum; }