+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:
#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
/* 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. |