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.