]> git.saurik.com Git - bison.git/commitdiff
* data/yacc.c (yyparse): In the initial action, set
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 9 Jul 2005 07:14:18 +0000 (07:14 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 9 Jul 2005 07:14:18 +0000 (07:14 +0000)
yylsp[0] and yyvsp[0] rather than yylloc and yylval.
This avoids the use of undefined variables if the initial
action does not set yylloc and/or yylval.

ChangeLog
data/yacc.c

index 1ec5667d3b2a63d2fa291193c83af04da6f8610f..b5f44adadf585d5b936f1cc98e7af89ae602d431 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-07-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data/yacc.c (yyparse): In the initial action, set
+       yylsp[0] and yyvsp[0] rather than yylloc and yylval.
+       This avoids the use of undefined variables if the initial
+       action does not set yylloc and/or yylval.
+
 2005-07-07  Paul Eggert  <eggert@cs.ucla.edu>
 
        * examples/calc++/calc++-driver.cc, examples/calc++/calc++-driver.hh:
index 6bf06d50c7fb0d344717a32006ec4a079d73b1f7..ebb0c9beea18a795cc299e5c941180e4bfd7ff51 100644 (file)
@@ -859,8 +859,8 @@ b4_c_function_def([yyparse], [int], b4_parse_param)
 #endif
 ]])
 m4_ifdef([b4_initial_action], [
-m4_pushdef([b4_at_dollar],     [yylloc])dnl
-m4_pushdef([b4_dollar_dollar], [yylval])dnl
+m4_pushdef([b4_at_dollar],     [[yylsp[0]]])dnl
+m4_pushdef([b4_dollar_dollar], [[yyvsp[0]]])dnl
   /* User initialization code. */
 b4_initial_action
 m4_popdef([b4_dollar_dollar])dnl
@@ -868,10 +868,7 @@ m4_popdef([b4_at_dollar])dnl
 /* Line __line__ of yacc.c.  */
 b4_syncline([@oline@], [@ofile@])])dnl
 [
-  yyvsp[0] = yylval;
-]b4_location_if([[    yylsp[0] = yylloc;
-]])
-[  goto yysetstate;
+  goto yysetstate;
 
 /*------------------------------------------------------------.
 | yynewstate -- Push a new state, which is found in yystate.  |