https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82802

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |glisse at gcc dot gnu.org,
                   |                            |rguenth at gcc dot gnu.org
   Target Milestone|6.5                         |---
      Known to fail|                            |5.4.0, 7.2.0

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
I think this was noted by Jakub somewhere - the FE converts the pointers to
signed integer for the subtraction which causes the issue for pointers into
objects that "wrap" around the "half" address-space.

POINTER_DIFF_EXPR is supposed to allow fixing this.

A band-aid would be to perform the subtraction in an unsigned type, then
casting the result to a signed type to do the division by the element size.
I think Jakub did this and there was some fallout.

Reply via email to