https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119399
Richard Sandiford <rsandifo at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |rsandifo at gcc dot
gnu.org
--- Comment #3 from Richard Sandiford <rsandifo at gcc dot gnu.org> ---
Taking for the pointer difference.
(In reply to Richard Biener from comment #2)
> Still the actual alias check looks prone to overflow issues since we do
> not distinguish before/after placement.
Could you go into more detail? The check is only performed when n>0, so we
know that q+4 is well-defined and that q<q+4. We require the pointers to be
aligned to 4 bytes (otherwise there is UB in the input), so for a 4-element
vector, the only problem cases are p==q+4, p==q+8 and p==q+12. That's
equivalent to testing whether the unsigned value p-(q+4) <= 8.