X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/10fa2066c9244e4e4e70c1b8dd71a823f6e5cb77..fb75fa822d8c8cc89759fe633a36ea5c79bee134:/src/bison.simple diff --git a/src/bison.simple b/src/bison.simple index c6d8b4dd..49c8b857 100644 --- a/src/bison.simple +++ b/src/bison.simple @@ -268,13 +268,20 @@ yynewstate: #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ +#ifdef YYLSP_NEEDED + /* This used to be a conditional around just the two extra args, + but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), -#ifdef YYLSP_NEEDED &yyls1, size * sizeof (*yylsp), -#endif &yystacksize); +#else + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yystacksize); +#endif yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED @@ -435,7 +442,8 @@ yydefault: /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; - yyval = yyvsp[1-yylen]; /* implement default value of the action */ + if (yylen > 0) + yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) @@ -453,7 +461,7 @@ yyreduce: #endif $ /* the action file gets copied in in place of this dollarsign */ -#line 457 "bison.simple" +#line 465 "bison.simple" yyvsp -= yylen; yyssp -= yylen;