------- Comment #2 from rguenth at gcc dot gnu dot org 2005-11-14 15:29 ------- The problem is that with 31.ccp we introduce:
<bb 0>: save1 = yylval; save2 = yyval; save3_92 = yynerrs; save4_94 = yyerrflag; yystate_95 = 0; yychar_96 = -1; yynerrs = 0; yyerrflag = 0; yyp_99 = &yys[536870911]; goto <bb 4> (yystack); ... # yychar_56 = PHI <-1(0), -1(13), yychar_61(31), ... # yystate_52 = PHI <0(0), yystate_2511(13), yystate_2467(31), ... # yyp_48 = PHI <&yys[536870911](0), yyp_129(13), yyp_49(31), ... yystack:; yyp_129 = yyp_48 + 8B; D.1934_130 = &yys[150]; if (yyp_129 >= &yys[150]) goto <L4>; else goto <L5>; <L4>:; yyerror (&"yacc stack overflow"[0]); goto <bb 2> (ret1); ... and later we will say that (yyp_129 >= &yys[150]) is always true because of this. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24851