https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108385
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Richard Biener from comment #5) > [E]VRP testcase which shows the odd 'off' range on the false edge: > > void bar(char *); > > void foo (char *p, char *pp, int off) > { > char *q = p + off; > if (q != p) > bar (q); > char *qq = pp + off; > if (qq != pp) > bar (qq); > bar (p); > bar (pp); > } In the old VRP code the register_edge_assert_for_* routines would be the ones to add pattern matching for this. I can't find where such code exists in ranger now - I suspected it might be in range-op when solving q = p + off; with q == p, but that operates on ranges and not equivalences only?