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...