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

--- Comment #9 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
OK, with -alias dump we have:

int main ()
{
  uint8_t * q;
  void * p;
  long unsigned int _2;

  <bb 2> :
  # PT = null { D.2008 }
  # ALIGN = 8, MISALIGN = 0
  # USE = anything 
  # CLB = anything 
  p_5 = malloc (1024);
  # USE = anything 
  # CLB = anything 
  memset (p_5, 15, 1024);
  MEM[(uint8_t *)p_5 + 1B] = 0;
  # USE = nonlocal escaped { D.2008 }
  _2 = test_uint8_tsize_t (p_5);
  if (_2 != 1)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  # USE = nonlocal escaped 
  # CLB = nonlocal escaped 
  __builtin_abort ();

  <bb 4> :
  return 0;

}

and here I think the problem is that p points-to contains D.2008 while call
uses D.2014 so they do not intersect.  Interestingly enough for ealias we have
D.2008 in both and the graph solution dumpted is exactly the same...

Reply via email to