Include members in the variable table used when resolving DW_AT_specification tags.
authorNick Clifton <nickc@redhat.com>
Sat, 29 Aug 2020 07:03:15 +0000 (08:03 +0100)
committerNick Clifton <nickc@redhat.com>
Sat, 29 Aug 2020 07:03:15 +0000 (08:03 +0100)
PR 26520
* dwarf2.c (scan_unit_for_symbols): Add member entries to the
variable table.

bfd/ChangeLog
bfd/dwarf2.c

index bb817a08efc188f5f98207291e0566b090fc7e80..f3d204e1dc7e5c963e426918404d5116e2faa9ed 100644 (file)
@@ -1,3 +1,9 @@
+2020-08-29  Nick Clifton  <nickc@redhat.com>
+
+       PR 26520
+       * dwarf2.c (scan_unit_for_symbols): Add member entries to the
+       variable table.
+
 2020-08-29  Alan Modra  <amodra@gmail.com>
 
        PR 26459
index b8f0008a10da531c8119d154b03cf5713f6d76b4..977bf43a6a181d97fa3ae71329478f9f263b090f 100644 (file)
@@ -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"),