[binutils-gdb] Include members in the variable table used when resolving DW_AT_specification tags.

Nick Clifton nickc@sourceware.org
Sat Aug 29 07:03:55 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e6f04d55f681149a69102a73937d0987719c3f16

commit e6f04d55f681149a69102a73937d0987719c3f16
Author: Nick Clifton <nickc@redhat.com>
Date:   Sat Aug 29 08:03:15 2020 +0100

    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.

Diff:
---
 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  <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
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"),


More information about the Binutils-cvs mailing list