[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
yacc.c fix to avoid use of uninitialized variables in initial action
From: |
Paul Eggert |
Subject: |
yacc.c fix to avoid use of uninitialized variables in initial action |
Date: |
Sat, 09 Jul 2005 00:17:34 -0700 |
I installed this:
2005-07-09 Paul Eggert <address@hidden>
* 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.
Index: data/yacc.c
===================================================================
RCS file: /cvsroot/bison/bison/data/yacc.c,v
retrieving revision 1.92
diff -p -u -r1.92 yacc.c
--- data/yacc.c 9 Jun 2005 20:44:28 -0000 1.92
+++ data/yacc.c 9 Jul 2005 07:11:18 -0000
@@ -859,8 +859,8 @@ b4_c_function_def([yyparse], [int], b4_p
#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(address@hidden@], address@hidden@])])dnl
[
- yyvsp[0] = yylval;
-]b4_location_if([[ yylsp[0] = yylloc;
-]])
-[ goto yysetstate;
+ goto yysetstate;
/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate. |
- yacc.c fix to avoid use of uninitialized variables in initial action,
Paul Eggert <=