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.

Reply via email to