From 6d05403db41804bbb6ca28a8a446fe93b0027c0e Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 7 Mar 2006 06:42:23 +0000 Subject: [PATCH] * data/glr.c (yyresolveLocations): Rename local variables to avoid shadowing warnings. Use usual patter for iterating through RHS. * tests/glr-regression.at (Uninitialized location when reporting ambiguity): Modify yylex so that it uses its argument, rather than trying to rely on ARGSUSED (which doesn't work for gcc with warnings). const char -> char const. --- ChangeLog | 8 ++++++++ data/glr.c | 30 +++++++++++++++--------------- tests/glr-regression.at | 11 ++++++----- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1ddecead..a0f8b34f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2006-03-06 Paul Eggert + * data/glr.c (yyresolveLocations): Rename local variables to avoid + shadowing warnings. Use usual patter for iterating through RHS. + * tests/glr-regression.at + (Uninitialized location when reporting ambiguity): + Modify yylex so that it uses its argument, rather than trying + to rely on ARGSUSED (which doesn't work for gcc with warnings). + const char -> char const. + * tests/Makefile.am ($(srcdir)/package.m4, maintainer-check-valgrind): Don't use tabs inside commands; it messes up 'ps'. Problem reported by twlevo. diff --git a/data/glr.c b/data/glr.c index a810bcdc..e67573b6 100644 --- a/data/glr.c +++ b/data/glr.c @@ -1803,43 +1803,43 @@ yyreportAmbiguity (yySemanticOption* yyx0, return yyabort; } -/** Starting at and including state S, resolve the location for each of the - * previous N states that is unresolved. The first semantic option of a state +/** Starting at and including state S1, resolve the location for each of the + * previous N1 states that is unresolved. The first semantic option of a state * is always chosen. */ static void -yyresolveLocations (yyGLRState* yys, int yyn, +yyresolveLocations (yyGLRState* yys1, int yyn1, yyGLRStack *yystackp]b4_user_formals[) { - if (0 < yyn) + if (0 < yyn1) { - yyresolveLocations (yys->yypred, yyn-1, yystackp]b4_user_args[); - if (!yys->yyresolved) + yyresolveLocations (yys1->yypred, yyn1 - 1, yystackp]b4_user_args[); + if (!yys1->yyresolved) { yySemanticOption *yyoption; - yyGLRStackItem yyrhs[1 + YYMAXRHS]; + yyGLRStackItem yyrhsloc[1 + YYMAXRHS]; int yynrhs; int yychar_current; YYSTYPE yylval_current; YYLTYPE yylloc_current; - yyoption = yys->yysemantics.yyfirstVal; + yyoption = yys1->yysemantics.yyfirstVal; YYASSERT (yyoption != NULL); yynrhs = yyrhsLength (yyoption->yyrule); if (yynrhs > 0) { yyGLRState *yys; - int yyi; + int yyn; yyresolveLocations (yyoption->yystate, yynrhs, yystackp]b4_user_args[); - for (yys = yyoption->yystate, yyi = yynrhs; - yyi >= 1; - yys = yys->yypred, yyi -= 1) - yyrhs[yyi].yystate.yyloc = yys->yyloc; + for (yys = yyoption->yystate, yyn = yynrhs; + yyn > 0; + yys = yys->yypred, yyn -= 1) + yyrhsloc[yyn].yystate.yyloc = yys->yyloc; } else { yyGLRState *yyprevious = yyoption->yystate; YYASSERT (yyprevious->yyresolved); - yyrhs[0].yystate.yyloc = yyprevious->yyloc; + yyrhsloc[0].yystate.yyloc = yyprevious->yyloc; } yychar_current = yychar; yylval_current = yylval; @@ -1847,7 +1847,7 @@ yyresolveLocations (yyGLRState* yys, int yyn, yychar = yyoption->yyrawchar; yylval = yyoption->yyval; yylloc = yyoption->yyloc; - YYLLOC_DEFAULT ((yys->yyloc), yyrhs, yynrhs); + YYLLOC_DEFAULT ((yys1->yyloc), yyrhsloc, yynrhs); yychar = yychar_current; yylval = yylval_current; yylloc = yylloc_current; diff --git a/tests/glr-regression.at b/tests/glr-regression.at index a36de9e2..54424656 100644 --- a/tests/glr-regression.at +++ b/tests/glr-regression.at @@ -972,7 +972,7 @@ AT_DATA_GRAMMAR([glr-regr12.y], start: alt1 %dprec 1 | alt2 %dprec 2 - ; + ; alt1: PARENT_RHS_AFTER { @@ -1547,7 +1547,7 @@ yyerror (char const *msg) static int yylex (void) { - static const char *input = "ab"; + static char const *input = "ab"; if (*input == 'b') lookahead_value = 1; return *input++; @@ -1627,11 +1627,12 @@ yyerror (YYLTYPE *locp, char const *msg) locp->first_column, locp->last_line, locp->last_column, msg); } -/*ARGSUSED*/ static int +static int yylex (YYSTYPE *lvalp, YYLTYPE *llocp) { - static const char input[] = "ab"; - static const char *inputp = input; + static char const input[] = "ab"; + static char const *inputp = input; + lvalp->dummy = 0; llocp->first_line = llocp->last_line = 2; llocp->first_column = inputp - input + 1; llocp->last_column = llocp->first_column + 1; -- 2.45.2