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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
  <bb 2>:
  p1 = makePimpled (); [return slot optimization]
  _7 = p1.d;
  p2.d = _7;
  p1.d = 0B;
  if (_7 != 0B)
    goto <bb 3>;
  else
    goto <bb 4>;

  <bb 3>:
  Pimpled::destroy (&p2);

  <bb 4>:
  p2 ={v} {CLOBBER};
  _3 = p1.d;
  if (_3 != 0B)

there is nothing that prevents makePimpled from storing a reference to p1
somewhere where Pimpled::destroy could modify it.

Thus it is not valid to assume that p1.d is still null at the if.

Reply via email to