https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79956

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2017-03-08
                 CC|                            |hubicka at gcc dot gnu.org,
                   |                            |rguenth at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
   Target Milestone|---                         |7.0
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
The ‘dstride[6]’ cases are obviously the array-bound warnings we mitigated by
not warning from VRP2 which runs after complete peeling which is prone to
producing one iteration too much (even though it should have seen that
dstride[6] is out-of-bounds and thus eliminated the iteration via
__builtin_unreachable - not done
because this transform is restricted to one copy - I've analyzed this in
another PR once).

This also happens after path isolation.

So the only way to "fix" this is to either (finally) fix complete peeling or,
not warn for out-of-bound accesses in uninit warning.

I always prefer to not generate obviously dead code...

Reply via email to