diff options
author | Tom de Vries <tdevries@suse.de> | 2020-09-30 21:49:01 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2020-09-30 21:49:01 +0200 |
commit | 95eb9e54a51fdb819c8525a0a33138d861f31bc8 (patch) | |
tree | f03c5a11fc45dc496568d0c1b8fc08310e82b9b8 | |
parent | cae21f8ebf01e379150bcf602a9ffb1f7c95b59e (diff) | |
download | gdb-95eb9e54a51fdb819c8525a0a33138d861f31bc8.zip gdb-95eb9e54a51fdb819c8525a0a33138d861f31bc8.tar.gz gdb-95eb9e54a51fdb819c8525a0a33138d861f31bc8.tar.bz2 |
[gdb] Fix regression in dwarf2_name
Since commit 2c830f5475 "Change some uses of DW_STRING to string method" we
have these regressions:
...
FAIL: gdb.base/info-types-c++.exp: info types
FAIL: gdb.cp/anon-struct.exp: print type of t::t
FAIL: gdb.cp/anon-struct.exp: print type of X::t2
FAIL: gdb.cp/anon-struct.exp: print type of X::t2::t2
FAIL: gdb.cp/anon-struct.exp: print type of t3::~t3
...
Fix these in dwarf2_name by updating attr_name each time attr is updated.
Tested on x86_64-linux.
gdb/ChangeLog:
2020-09-30 Tom de Vries <tdevries@suse.de>
PR symtab/26683
* dwarf2/read.c (dwarf2_name): Update attr_name after attr is updated.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/dwarf2/read.c | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c448589..e297075 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-09-30 Tom de Vries <tdevries@suse.de> + + PR symtab/26683 + * dwarf2/read.c (dwarf2_name): Update attr_name after attr is updated. + 2020-09-30 Tom Tromey <tromey@adacore.com> * dwarf2/read.c (handle_variant): Use constant_value. diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index c0a89ec..973a375 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -22632,6 +22632,7 @@ dwarf2_name (struct die_info *die, struct dwarf2_cu *cu) if (!attr || attr_name == NULL) { attr = dw2_linkage_name_attr (die, cu); + attr_name = attr == nullptr ? nullptr : attr->as_string (); if (attr == NULL || attr_name == NULL) return NULL; @@ -22645,6 +22646,7 @@ dwarf2_name (struct die_info *die, struct dwarf2_cu *cu) return nullptr; attr->set_string_canonical (objfile->intern (demangled.get ())); + attr_name = attr->as_string (); } /* Strip any leading namespaces/classes, keep only the |