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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
          /* With undefined overflow we can only associate constants with one
             variable, and constants whose association doesn't overflow.  */
          if ((POINTER_TYPE_P (atype) && POINTER_TYPE_OVERFLOW_UNDEFINED)
              || (INTEGRAL_TYPE_P (atype) && !TYPE_OVERFLOW_WRAPS (atype)))
            {
...
                  /* The only case we can still associate with two variables
                     is if they are the same, modulo negation and bit-pattern
                     preserving conversions.  */
                  if (!operand_equal_p (tmp0, tmp1, 0))
                    ok = false;

but that's only if they cancel out.  I think the above code is mine, thus,
mine.

Reply via email to