https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89296
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P2 Status|NEW |ASSIGNED Assignee|kugan at gcc dot gnu.org |rguenth at gcc dot gnu.org Target Milestone|--- |7.5 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- This gimple_set_no_warning is guarded by /* If the loop has the form "for (i = j; i < j + 10; i++)" then this copying can introduce a case where we rely on undefined signed overflow to eliminate the preheader condition, because we assume that "j < j + 10" is true. We don't want to warn about that case for -Wstrict-overflow, because in general we don't warn about overflow involving loops. Prevent the warning by setting the no_warning flag in the condition. */ if (warn_strict_overflow > 0) { so it only shows that the _no_warning stuff is too coarse (we know about that). We can improve the above to non-equality compares, catching the case in question.