aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/dwarf2/read.c18
2 files changed, 14 insertions, 10 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6cb3cb5..9211708 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2020-03-16 Tom Tromey <tromey@adacore.com>
+
+ PR gdb/25663:
+ * dwarf2/read.c (dwarf2_name): Strip leading namespaces after
+ putting value into bcache.
+
2020-03-16 Simon Marchi <simon.marchi@efficios.com>
PR gdb/21500
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 1706b96..88a60c1 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -21799,19 +21799,17 @@ dwarf2_name (struct die_info *die, struct dwarf2_cu *cu)
if (demangled == nullptr)
return nullptr;
- const char *base;
-
DW_STRING (attr) = objfile->intern (demangled.get ());
DW_STRING_IS_CANONICAL (attr) = 1;
-
- /* Strip any leading namespaces/classes, keep only the base name.
- DW_AT_name for named DIEs does not contain the prefixes. */
- base = strrchr (DW_STRING (attr), ':');
- if (base && base > DW_STRING (attr) && base[-1] == ':')
- return &base[1];
- else
- return DW_STRING (attr);
}
+
+ /* Strip any leading namespaces/classes, keep only the base name.
+ DW_AT_name for named DIEs does not contain the prefixes. */
+ const char *base = strrchr (DW_STRING (attr), ':');
+ if (base && base > DW_STRING (attr) && base[-1] == ':')
+ return &base[1];
+ else
+ return DW_STRING (attr);
}
break;