From: Simon Marchi Date: Mon, 5 Jan 2026 20:38:18 +0000 (-0500) Subject: gdb: remove context_stack::static_link X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=84211dee3eaff3f630ba4c8bf45aea8f049cffc8;p=thirdparty%2Fbinutils-gdb.git gdb: remove context_stack::static_link I don't think it's needed to record this information in the context_stack structure. The only user is the DWARF reader, where it can very well be a local variable. Change-Id: I6e33affbf03f11c0d0ab60067f169137fde1c994 Approved-By: Tom Tromey --- diff --git a/gdb/buildsym.h b/gdb/buildsym.h index ff1c2a075fc..7ca5e57c7f4 100644 --- a/gdb/buildsym.h +++ b/gdb/buildsym.h @@ -94,10 +94,6 @@ struct context_stack /* Name of function, if any, defining context. */ symbol *name = nullptr; - /* Expression that computes the frame base of the lexically enclosing - function, if any. NULL otherwise. */ - dynamic_prop *static_link = nullptr; - /* PC where this context starts. */ CORE_ADDR start_addr; diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 4edd9cf2591..05a285728da 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -8586,14 +8586,12 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu) dwarf2_symbol_mark_computed (attr, ctx.name, cu, 1); /* If there is a location for the static link, record it. */ - ctx.static_link = NULL; + dynamic_prop *static_link = nullptr; attr = dwarf2_attr (die, DW_AT_static_link, cu); if (attr != nullptr) { - ctx.static_link - = XOBNEW (&objfile->objfile_obstack, struct dynamic_prop); - attr_to_dynamic_prop (attr, die, cu, ctx.static_link, - cu->addr_type ()); + static_link = XOBNEW (&objfile->objfile_obstack, struct dynamic_prop); + attr_to_dynamic_prop (attr, die, cu, static_link, cu->addr_type ()); } cu->list_in_scope = &cu->get_builder ()->get_local_symbols (); @@ -8636,9 +8634,10 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu) } struct context_stack cstk = cu->get_builder ()->pop_context (); + /* Make a block for the local symbols within. */ block = cu->get_builder ()->finish_block (cstk.name, cstk.old_blocks, - cstk.static_link, lowpc, highpc); + static_link, lowpc, highpc); /* For C++, set the block's scope. */ if ((cu->lang () == language_cplus