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;
}