https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96351
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2020-07-28 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- VRP doesn't work "backwards", it also does an incredibly bad job at tracking pointer ranges where it simply prefers to track non-NULL. Here we'd need to track symbolic [str_7 + [2, +INF] ] or so which it cannot do either. Eventually other analyses (SCEV?) could derive sth for # pszTmp_8 = PHI <pszTmp_19(8)> _14 = pszTmp_8 - str_7; _15 = _14 /[ex] 2; but even there, since we do not know the number of iterations, the representation will have its limits.