Fix build failure with macOS bison
authorTom Tromey <tom@tromey.com>
Sun, 6 Jan 2019 16:49:11 +0000 (09:49 -0700)
committerSimon Marchi <simon.marchi@ericsson.com>
Tue, 8 Jan 2019 17:45:19 +0000 (12:45 -0500)
PR gdb/24060 points out a compilation failure of the C, Fortran and Pascal
parsers when they are built using the macOS system bison.  The bug is a name
clash between the VARIABLE token name and the VARIABLE enumerator in ui-out.h.

This patch renames VARIABLE in c-exp.y, f-exp.y and p-exp.y to DOLLAR_VARIABLE
to avoid the clash.  It also renames similar variables in other .y files so
that all languages use the same name.

gdb/ChangeLog
2019-01-07  Tom Tromey  <tom@tromey.com>
2019-01-07  Simon Marchi  <simon.marchi@ericsson.com>

PR gdb/24060:
* ada-exp.y (DOLLAR_VARIABLE): Rename from SPECIAL_VARIABLE.
* ada-lex.l (DOLLAR_VARIABLE): Likewise.
* c-exp.y (DOLLAR_VARIABLE): Rename from VARIABLE.
* f-exp.y (DOLLAR_VARIABLE): Likewise.
* m2-exp.y (DOLLAR_VARIABLE): Rename from INTERNAL_VAR.
* p-exp.y (DOLLAR_VARIABLE): Rename from VARIABLE.

gdb/ChangeLog
gdb/ada-exp.y
gdb/ada-lex.l
gdb/c-exp.y
gdb/f-exp.y
gdb/m2-exp.y
gdb/p-exp.y

index 71345ac869531893c05381e7b1e9cff7e6378a79..d16d9e1e3d56f64e66c0ea457439c8e84f7446ef 100644 (file)
@@ -1,3 +1,14 @@
+2019-01-08  Tom Tromey  <tom@tromey.com>
+           Simon Marchi  <simon.marchi@ericsson.com>
+
+       PR gdb/24060
+       * ada-exp.y (DOLLAR_VARIABLE): Rename from SPECIAL_VARIABLE.
+       * ada-lex.l (DOLLAR_VARIABLE): Likewise.
+       * c-exp.y (DOLLAR_VARIABLE): Rename from VARIABLE.
+       * f-exp.y (DOLLAR_VARIABLE): Likewise.
+       * m2-exp.y (DOLLAR_VARIABLE): Rename from INTERNAL_VAR.
+       * p-exp.y (DOLLAR_VARIABLE): Rename from VARIABLE.
+
 2019-01-08  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * source.c (select_source_symtab): Move header comment to
index 5342e6b2b70a77cbf47f99fdec1b214cd6f41ed3..5925416e88fc8f5fc49f4f46d3bb1147ec015e4a 100644 (file)
@@ -151,7 +151,7 @@ static struct type *type_system_address (struct parser_state *);
 
 /* Special type cases, put in to allow the parser to distinguish different
    legal basetypes.  */
-%token <sval> SPECIAL_VARIABLE
+%token <sval> DOLLAR_VARIABLE
 
 %nonassoc ASSIGN
 %left _AND_ OR XOR THEN ELSE
@@ -275,7 +275,7 @@ primary :   var_or_type     %prec VAR
                        }
        ;
 
-primary :      SPECIAL_VARIABLE /* Various GDB extensions */
+primary :      DOLLAR_VARIABLE /* Various GDB extensions */
                        { write_dollar_variable (pstate, $1); }
        ;
 
index 95ea92e12d4c3be75c4e6c0ba83797c6d0aefd7f..05af013c258c50c737486a049108b3c9704432f6 100644 (file)
@@ -290,7 +290,7 @@ false               { return FALSEKEYWORD; }
 "$"({LETTER}|{DIG}|"$")*  {
                  yylval.sval.ptr = yytext;
                  yylval.sval.length = yyleng;
-                 return SPECIAL_VARIABLE;
+                 return DOLLAR_VARIABLE;
                }
 
        /* CATCH-ALL ERROR CASE */
index 155fe09f37a7dda191ee03ea2912b755f919541d..f3ef23c75a7ae9384bbff1002cbc1b103b6a15c9 100644 (file)
@@ -234,7 +234,7 @@ static void c_print_token (FILE *file, int type, YYSTYPE value);
    legal basetypes.  */
 %token SIGNED_KEYWORD LONG SHORT INT_KEYWORD CONST_KEYWORD VOLATILE_KEYWORD DOUBLE_KEYWORD
 
-%token <sval> VARIABLE
+%token <sval> DOLLAR_VARIABLE
 
 %token <opcode> ASSIGN_MODIFY
 
@@ -798,7 +798,7 @@ exp :       FLOAT
 exp    :       variable
        ;
 
-exp    :       VARIABLE
+exp    :       DOLLAR_VARIABLE
                        {
                          write_dollar_variable (pstate, $1);
                        }
@@ -2884,7 +2884,7 @@ lex_one_token (struct parser_state *par_state, bool *is_quoted_name)
       }
 
   if (*tokstart == '$')
-    return VARIABLE;
+    return DOLLAR_VARIABLE;
 
   if (parse_completion && *lexptr == '\0')
     saw_name_at_eof = 1;
@@ -3337,7 +3337,7 @@ c_print_token (FILE *file, int type, YYSTYPE value)
       break;
 
     case NSSTRING:
-    case VARIABLE:
+    case DOLLAR_VARIABLE:
       parser_fprintf (file, "sval<%s>", copy_name (value.sval));
       break;
 
index ae6f86a34be294d9920014e0faaf7a9224ea604e..d70c66474c0eff698ea83a6c17d563afc2c80b4c 100644 (file)
@@ -161,7 +161,7 @@ static int parse_number (struct parser_state *, const char *, int,
 %token BOOL_AND BOOL_OR BOOL_NOT   
 %token <lval> CHARACTER 
 
-%token <voidval> VARIABLE
+%token <voidval> DOLLAR_VARIABLE
 
 %token <opcode> ASSIGN_MODIFY
 
@@ -426,7 +426,7 @@ exp :       FLOAT
 exp    :       variable
        ;
 
-exp    :       VARIABLE
+exp    :       DOLLAR_VARIABLE
        ;
 
 exp    :       SIZEOF '(' type ')'     %prec UNARY
@@ -1135,7 +1135,7 @@ yylex (void)
   if (*tokstart == '$')
     {
       write_dollar_variable (pstate, yylval.sval);
-      return VARIABLE;
+      return DOLLAR_VARIABLE;
     }
   
   /* Use token-type TYPENAME for symbols that happen to be defined
index a03949161720e7e74051cf9a0a734dcda162a6e4..85d587651a28ba18e976fd71decb068ff01f4a5e 100644 (file)
@@ -125,7 +125,7 @@ static int number_sign = 1;
 /* The GDB scope operator */
 %token COLONCOLON
 
-%token <voidval> INTERNAL_VAR
+%token <voidval> DOLLAR_VARIABLE
 
 /* M2 tokens */
 %left ','
@@ -535,7 +535,7 @@ variable:   fblock
        ;
 
 /* GDB internal ($foo) variable */
-variable:      INTERNAL_VAR
+variable:      DOLLAR_VARIABLE
        ;
 
 /* GDB scope operator */
@@ -949,7 +949,7 @@ yylex (void)
   if (*tokstart == '$')
     {
       write_dollar_variable (pstate, yylval.sval);
-      return INTERNAL_VAR;
+      return DOLLAR_VARIABLE;
     }
 
   /* Use token-type BLOCKNAME for symbols that happen to be defined as
index 7e2769e33caa61cfa53faf311fee7c1934e42947..31e8c4bea665acf3ce50f44e88ffcbf35267ee45 100644 (file)
@@ -158,7 +158,7 @@ static int search_field;
 /* Special type cases, put in to allow the parser to distinguish different
    legal basetypes.  */
 
-%token <voidval> VARIABLE
+%token <voidval> DOLLAR_VARIABLE
 
 
 /* Object pascal */
@@ -521,7 +521,7 @@ exp :       FLOAT
 exp    :       variable
        ;
 
-exp    :       VARIABLE
+exp    :       DOLLAR_VARIABLE
                        /* Already written by write_dollar_variable.
                           Handle current_type.  */
                        {  if (intvar) {
@@ -1492,7 +1492,7 @@ yylex (void)
       tmp[namelen] = '\0';
       intvar = lookup_only_internalvar (tmp + 1);
       free (uptokstart);
-      return VARIABLE;
+      return DOLLAR_VARIABLE;
     }
 
   /* Use token-type BLOCKNAME for symbols that happen to be defined as