------- 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