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