https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65875
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I meant in the first loop. But we handle: int b, c, e; long foo (int x, int y) { long h = 0; for (b = 0; b < x; b++) for (c = 0; c < y; c++) if (e) h = 1; return h + 4; } correctly, it is only as soon as one of those loops turns into endless loop: int b, c, e; long foo (int x, int y) { long h = 0; for (b = 0; b < x; b++) for (c = 0; c < y;) if (e) h = 1; return h + 4; } that we lose track. But, if it is only for endless loops, probably nothing to worry about, the finite loops are much more important.