Remove the type_qualifier global
authorTom Tromey <tromey@adacore.com>
Thu, 1 Jul 2021 17:40:37 +0000 (11:40 -0600)
committerTom Tromey <tromey@adacore.com>
Mon, 2 Aug 2021 16:11:23 +0000 (10:11 -0600)
The type_qualifier global is no longer needed in the Ada expression
parser, so this removes it.

gdb/ada-exp.y

index a0b8b7df8ce546ff0bf9d2c3b42d0d4ab4c8a8b8..66d58b06cb59111b751a3a6feca72182cfc98463 100644 (file)
@@ -68,10 +68,6 @@ struct name_info {
 
 static struct parser_state *pstate = NULL;
 
-/* If expression is in the context of TYPE'(...), then TYPE, else
- * NULL.  */
-static struct type *type_qualifier;
-
 int yyparse (void);
 
 static int yylex (void);
@@ -428,8 +424,6 @@ pop_associations (int n)
 %type <bval> block
 %type <lval> arglist tick_arglist
 
-%type <tval> save_qualifier
-
 %token DOT_ALL
 
 /* Special type cases, put in to allow the parser to distinguish different
@@ -516,8 +510,7 @@ primary :   primary '(' arglist ')'
                        }
        ;
 
-primary :      var_or_type '\'' save_qualifier { type_qualifier = $1; } 
-                  '(' exp ')'
+primary :      var_or_type '\'' '(' exp ')'
                        {
                          if ($1 == NULL)
                            error (_("Type required for qualification"));
@@ -525,13 +518,9 @@ primary :  var_or_type '\'' save_qualifier { type_qualifier = $1; }
                                                      check_typedef ($1));
                          pstate->push_new<ada_qual_operation>
                            (std::move (arg), $1);
-                         type_qualifier = $3;
                        }
        ;
 
-save_qualifier :       { $$ = type_qualifier; }
-       ;
-
 primary :
                primary '(' simple_exp DOTDOT simple_exp ')'
                        { ada_wrap3<ada_ternop_slice_operation> (); }
@@ -1093,7 +1082,6 @@ ada_parse (struct parser_state *par_state)
   pstate = par_state;
 
   lexer_init (yyin);           /* (Re-)initialize lexer.  */
-  type_qualifier = NULL;
   obstack_free (&temp_parse_space, NULL);
   obstack_init (&temp_parse_space);
   components.clear ();