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

--- Comment #4 from Filip Kastl <pheeck at gcc dot gnu.org> ---
I don't think ipa-pta's role here is making a change to the symbol table. 
ipa-pta computes that the points-to set of _2 is empty.  If I change it to be
non-empty, I avoid the ICE.  That makes sense, since then GCC knows 'if (_2 ==
&a)' is always false and therefore the call to memcpy is unreachable.

a-testcase.c.074i.targetclone2:
  <bb 3> [local count: 536870912]:
  _2 = i_8(D)->d;
  if (_2 == &a)
    goto <bb 4>; [17.43%]
  else
    goto <bb 5>; [82.57%]

  <bb 4> [local count: 93576600]:
  b.1_3 = b;
  _4 = (long unsigned int) b.1_3;
  f.2_5 = f;
  memcpy (f.2_5, i_8(D), _4);

The next dump is a-testcase.c.077i.profile, where neither the if nor the call
can be found.

Reply via email to