bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: portability fix for bison-1.75


From: Paul Eggert
Subject: Re: portability fix for bison-1.75
Date: Mon, 23 Jan 2006 00:44:07 -0800
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

Kris Kennaway <address@hidden> 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  <address@hidden>

        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.  */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]