Fix build failure with macOS bison

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.
This commit is contained in:
Tom Tromey 2019-01-06 09:49:11 -07:00 committed by Simon Marchi
parent 236f4ebe3a
commit cfeadda545
7 changed files with 27 additions and 16 deletions

View 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

View 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); }
;

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

View 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;

View 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

View 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

View 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