Date: Mon, 23 Jan 2006 00:44:07 -0800 From: Paul Eggert <eggert@CS.UCLA.EDU> To: Kris Kennaway <kris@obsecurity.org> Cc: freebsd@sopwith.solgatos.com, bug-bison@gnu.org, freebsd-ports@freebsd.org, bison-patches@gnu.org Subject: Re: portability fix for bison-1.75 Message-ID: <878xt7z63s.fsf@penguin.cs.ucla.edu> In-Reply-To: <20060122044224.GA81690@xor.obsecurity.org> (Kris Kennaway's message of "Sat, 21 Jan 2006 23:42:24 -0500") References: <200601131825.SAA21164@sopwith.solgatos.com> <87r772obn8.fsf@penguin.cs.ucla.edu> <20060120211940.GA43031@xor.obsecurity.org> <87u0bymq7x.fsf@penguin.cs.ucla.edu> <20060122044224.GA81690@xor.obsecurity.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Kris Kennaway <kris@obsecurity.org> writes: > security/bro (ftp://ftp.ee.lbl.gov/) I installed the following patch into Bison CVS so that it will compile bro 0.8. This patch should appear in Bison 2.2, whenever that comes out. 2006-01-23 Paul Eggert <eggert@cs.ucla.edu> Work around a bug in bro 0.8, which underparenthesizes its definition of YYLLOC_DEFAULT. * data/glr.c: Change all uses of YYLLOC_DEFAULT to parenthesize their arguments. * data/lalr1.cc: Likewise. * data/yacc.cc: Likewise. Index: data/glr.c =================================================================== RCS file: /cvsroot/bison/bison/data/glr.c,v retrieving revision 1.161 diff -p -u -r1.161 glr.c --- data/glr.c 22 Jan 2006 07:38:49 -0000 1.161 +++ data/glr.c 23 Jan 2006 08:31:33 -0000 @@ -923,7 +923,7 @@ yyuserAction (yyRuleNum yyn, int yyrhsle *yyvalp = yyval_default; else *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval; - YYLLOC_DEFAULT (*yylocp, yyvsp - yyrhslen, yyrhslen); + YYLLOC_DEFAULT ((*yylocp), (yyvsp - yyrhslen), yyrhslen); ]b4_location_if([[ yystackp->yyerror_range[1].yystate.yyloc = *yylocp; ]])[ switch (yyn) @@ -2119,7 +2119,7 @@ yyrecoverSyntaxError (yyGLRStack* yystac yyGLRStackItem yyerror_range[3]; yyerror_range[1].yystate.yyloc = yys->yyloc; yyerror_range[2].yystate.yyloc = yylloc; - YYLLOC_DEFAULT (yys->yyloc, yyerror_range, 2);]])[ + YYLLOC_DEFAULT ((yys->yyloc), yyerror_range, 2);]])[ yydestruct ("Error: discarding", *yytokenp, &yylval]b4_location_if([, &yylloc])[]b4_user_args[); } @@ -2166,7 +2166,7 @@ yyrecoverSyntaxError (yyGLRStack* yystac /* Shift the error token having adjusted its location. */ YYLTYPE yyerrloc;]b4_location_if([[ yystackp->yyerror_range[2].yystate.yyloc = yylloc; - YYLLOC_DEFAULT (yyerrloc, yystackp->yyerror_range, 2);]])[ + YYLLOC_DEFAULT (yyerrloc, (yystackp->yyerror_range), 2);]])[ YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]], &yylval, &yyerrloc); yyglrShift (yystackp, 0, yytable[yyj], Index: data/lalr1.cc =================================================================== RCS file: /cvsroot/bison/bison/data/lalr1.cc,v retrieving revision 1.121 diff -p -u -r1.121 lalr1.cc --- data/lalr1.cc 22 Jan 2006 07:38:49 -0000 1.121 +++ data/lalr1.cc 23 Jan 2006 08:31:33 -0000 @@ -783,7 +783,7 @@ b4_error_verbose_if([, yytoken])[)); yyerror_range[1] = yylloc; // Using YYLLOC is tempting, but would change the location of // the look-ahead. YYLOC is available though. - YYLLOC_DEFAULT (yyloc, yyerror_range - 1, 2); + YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); yysemantic_stack_.push (yylval); yylocation_stack_.push (yyloc); Index: data/yacc.c =================================================================== RCS file: /cvsroot/bison/bison/data/yacc.c,v retrieving revision 1.132 diff -p -u -r1.132 yacc.c --- data/yacc.c 23 Jan 2006 07:59:42 -0000 1.132 +++ data/yacc.c 23 Jan 2006 08:31:33 -0000 @@ -1262,7 +1262,7 @@ yyreduce: ]b4_location_if( [[ /* Default location. */ - YYLLOC_DEFAULT (yyloc, yylsp - yylen, yylen);]])[ + YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);]])[ YY_REDUCE_PRINT (yyn); switch (yyn) { @@ -1427,7 +1427,7 @@ yyerrlab1: yyerror_range[1] = yylloc; /* Using YYLLOC is tempting, but would change the location of the look-ahead. YYLOC is available though. */ - YYLLOC_DEFAULT (yyloc, yyerror_range - 1, 2); + YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); *++yylsp = yyloc;]])[ /* Shift the error token. */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?878xt7z63s.fsf>