From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2126) id 8BCC73858412; Tue, 2 Apr 2024 17:36:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8BCC73858412 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1712079363; bh=dhRl4MGJyzqwzUHvZNSgoX+rReCrqXqJeMNAsK97J8E=; h=From:To:Subject:Date:From; b=aTV297NV86QeTVholGbKJlB9SGCtExNuKDd4qQgGW57je3Hxwao9UIVxjrsW3Rhxe j9P7OnR/qI+Pt4qmMrlDbydTXt6xmiC8GlG8s9wSTA19gQhU3LEl4H70BwEpuEEyoA HbX3VYfdlPWLa0UN4rf8Y8ukaQj//otu0O8u1we4= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Tom Tromey To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Move "iterated_associations" into ada_parse_state X-Act-Checkin: binutils-gdb X-Git-Author: Tom Tromey X-Git-Refname: refs/heads/master X-Git-Oldrev: 06c3813858a3b4d9cf624fa687ded27b934fa024 X-Git-Newrev: ed08e2b3714e9ea80f68443efb92967300a8897f Message-Id: <20240402173603.8BCC73858412@sourceware.org> Date: Tue, 2 Apr 2024 17:36:03 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3Ded08e2b3714e= 9ea80f68443efb92967300a8897f commit ed08e2b3714e9ea80f68443efb92967300a8897f Author: Tom Tromey Date: Thu Mar 14 12:19:22 2024 -0600 Move "iterated_associations" into ada_parse_state =20 This patch moves the "iterated_associations" global into ada_parse_state. Diff: --- gdb/ada-exp.y | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y index 207fdcb2707..09cf6ccf186 100644 --- a/gdb/ada-exp.y +++ b/gdb/ada-exp.y @@ -96,6 +96,10 @@ struct ada_parse_state to implement '@', the target name symbol. */ std::vector assignments; =20 + /* Track currently active iterated assignment names. */ + std::unordered_map> + iterated_associations; + private: =20 /* We don't have a good way to manage non-POD data in Yacc, so store @@ -443,10 +447,6 @@ make_tick_completer (struct stoken tok) (new ada_tick_completer (std::string (tok.ptr, tok.length)))); } =20 -/* Track currently active iterated assignment names. */ -static std::unordered_map> - iterated_associations; - %} =20 %union @@ -1127,12 +1127,12 @@ component_group : { std::string name =3D copy_name ($2); =20 - auto iter =3D iterated_associations.find (name); - if (iter !=3D iterated_associations.end ()) + auto iter =3D ada_parser->iterated_associations.find (name); + if (iter !=3D ada_parser->iterated_associations.end ()) error (_("Nested use of index parameter '%s'"), name.c_str ()); =20 - iterated_associations[name] =3D {}; + ada_parser->iterated_associations[name] =3D {}; } component_associations { @@ -1141,12 +1141,12 @@ component_group : ada_choices_component *choices =3D choice_component (); choices->set_associations (pop_associations ($5)); =20 - auto iter =3D iterated_associations.find (name); - gdb_assert (iter !=3D iterated_associations.end ()); + auto iter =3D ada_parser->iterated_associations.find (name); + gdb_assert (iter !=3D ada_parser->iterated_associations.end ()); for (ada_index_var_operation *var : iter->second) var->set_choices (choices); =20 - iterated_associations.erase (name); + ada_parser->iterated_associations.erase (name); =20 choices->set_name (std::move (name)); } @@ -1256,7 +1256,6 @@ ada_parse (struct parser_state *par_state) lexer_init (yyin); /* (Re-)initialize lexer. */ obstack_free (&temp_parse_space, NULL); obstack_init (&temp_parse_space); - iterated_associations.clear (); =20 int result =3D yyparse (); if (!result) @@ -1706,8 +1705,8 @@ write_var_or_type (struct parser_state *par_state, =20 if (block =3D=3D nullptr) { - auto iter =3D iterated_associations.find (name_storage); - if (iter !=3D iterated_associations.end ()) + auto iter =3D ada_parser->iterated_associations.find (name_storage); + if (iter !=3D ada_parser->iterated_associations.end ()) { auto op =3D std::make_unique (); iter->second.push_back (op.get ());