]> git.saurik.com Git - bison.git/commitdiff
* bison.s1 (yyparse): Assign the default value
authorAkim Demaille <akim@epita.fr>
Mon, 2 Oct 2000 10:29:00 +0000 (10:29 +0000)
committerAkim Demaille <akim@epita.fr>
Mon, 2 Oct 2000 10:29:00 +0000 (10:29 +0000)
unconditionally, to avoid a GCC warning and make the parser a
tad smaller.

ChangeLog
src/bison.s1
src/bison.simple

index 460b2479863c02a3c52d64f8668544b68ad49e24..2b91be7b6f0d4dc6a084548c1d9a32c30f785128 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2000-10-02  Paul Eggert  <eggert@twinsun.com>
+
+       * bison.s1 (yyparse): Assign the default value
+       unconditionally, to avoid a GCC warning and make the parser a
+       tad smaller.
+
 2000-10-02  Akim Demaille  <akim@epita.fr>
 
        * src/getargs.c (getargs): Don't dump `--help' on unrecognized
index bc656245c136985826dda4f0a4c5447af428c3ea..aee33e27fe327aca9587eeef3cefbc216649b140 100644 (file)
@@ -558,10 +558,16 @@ yydefault:
 yyreduce:
   /* yyn is the number of a rule to reduce with.  */
   yylen = yyr2[yyn];
-  /* Implement default value of the action:
-     `{dollar}{dollar} = {dollar}1'. */
-  if (yylen > 0)
-      yyval = yyvsp[1-yylen];
+
+  /* If YYLEN is nonzero, implement the default value of the action:
+     `{dollar}{dollar} = {dollar}1'.
+
+     Otherwise, the following line sets YYVAL to the semantic value of
+     the lookahead token.  This behavior is undocumented and Bison
+     users should not rely upon it.  Assigning to YYVAL
+     unconditionally makes the parser a bit smaller, and it avoids a
+     GCC warning that YYVAL may be used uninitialized.  */
+  yyval = yyvsp[1-yylen];
 #ifdef YYLSP_NEEDED
   /* Implement default location.  If the rhs is empty, extend YYLOC to
      YYLLOC, which corresponds to the current token, otherwise
index bc656245c136985826dda4f0a4c5447af428c3ea..aee33e27fe327aca9587eeef3cefbc216649b140 100644 (file)
@@ -558,10 +558,16 @@ yydefault:
 yyreduce:
   /* yyn is the number of a rule to reduce with.  */
   yylen = yyr2[yyn];
-  /* Implement default value of the action:
-     `{dollar}{dollar} = {dollar}1'. */
-  if (yylen > 0)
-      yyval = yyvsp[1-yylen];
+
+  /* If YYLEN is nonzero, implement the default value of the action:
+     `{dollar}{dollar} = {dollar}1'.
+
+     Otherwise, the following line sets YYVAL to the semantic value of
+     the lookahead token.  This behavior is undocumented and Bison
+     users should not rely upon it.  Assigning to YYVAL
+     unconditionally makes the parser a bit smaller, and it avoids a
+     GCC warning that YYVAL may be used uninitialized.  */
+  yyval = yyvsp[1-yylen];
 #ifdef YYLSP_NEEDED
   /* Implement default location.  If the rhs is empty, extend YYLOC to
      YYLLOC, which corresponds to the current token, otherwise