------- Additional Comments From pinskia at gcc dot gnu dot org  2004-12-23 
05:56 -------
This is definitely an problem in the aliasing code:
  D.1126_6 = &my_perl_5->Itokenbuf[0];
  term_7 = *D.1126_6;
  if (i_8 != 0) goto <L0>; else goto <L6>;
<L0>:;
  *s_18 = term_7;
  s_19 = &my_perl_5->Itokenbuf[0];
  s_20 = s_19;
  tmpbuf = "";
  if (s_20 == 0B) goto <L1>; else goto <L2>;
<L1>:;
  s_27 = &tmpbuf;

  # s_1 = PHI <s_20(1), s_27(2)>;
<L2>:;

What DOM did was combined the two "&my_perl_5->Itokenbuf[0]" so s_19 = D.1126_6
and then say that s_20 will never be zero as we already loaded from D.1126_6 so 
it turned s_20==0 to 
false, then prograted D.1126_6 into the PHI of s_1 which causes the ICE.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19121

Reply via email to