]> git.saurik.com Git - bison.git/blobdiff - src/bison.simple
*** empty log message ***
[bison.git] / src / bison.simple
index c6d8b4dd08745e7427bb470aed5a2959646b3e7a..49c8b857e6bf338946d84be678a0220786c9248b 100644 (file)
@@ -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"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;