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?