From e6f04d55f681149a69102a73937d0987719c3f16 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Sat, 29 Aug 2020 08:03:15 +0100 Subject: [PATCH] Include members in the variable table used when resolving DW_AT_specification tags. PR 26520 * dwarf2.c (scan_unit_for_symbols): Add member entries to the variable table. --- bfd/ChangeLog | 6 ++++++ bfd/dwarf2.c | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bb817a08efc..f3d204e1dc7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2020-08-29 Nick Clifton + + PR 26520 + * dwarf2.c (scan_unit_for_symbols): Add member entries to the + variable table. + 2020-08-29 Alan Modra PR 26459 diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index b8f0008a10d..977bf43a6a1 100644 --- a/bfd/dwarf2.c +++ b/bfd/dwarf2.c @@ -3404,7 +3404,8 @@ scan_unit_for_symbols (struct comp_unit *unit) else { func = NULL; - if (abbrev->tag == DW_TAG_variable) + if (abbrev->tag == DW_TAG_variable + || abbrev->tag == DW_TAG_member) { size_t amt = sizeof (struct varinfo); var = (struct varinfo *) bfd_zalloc (abfd, amt); @@ -3516,7 +3517,7 @@ scan_unit_for_symbols (struct comp_unit *unit) spec_var = lookup_var_by_offset (attr.u.val, unit->variable_table); if (spec_var == NULL) - { + { _bfd_error_handler (_("DWARF error: could not find " "variable specification " "at offset %lx"), -- 2.30.2