From 31ef98ae61505d87f8d3098c5fc1dcb19035a6a1 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 20 Apr 2010 21:19:07 +0000 Subject: [PATCH] * dwarf2read.c (dwarf2_compute_name): Handle DW_AT_linkage_name. (read_partial_die): Likewise. (dwarf_attr_name): Likewise. --- gdb/ChangeLog | 6 ++++++ gdb/dwarf2read.c | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f87175f3054..191e7f25abf 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2010-04-20 Tom Tromey + + * dwarf2read.c (dwarf2_compute_name): Handle DW_AT_linkage_name. + (read_partial_die): Likewise. + (dwarf_attr_name): Likewise. + 2010-04-20 Chris Moller PR 10867 diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index a9482182444..3096ab782e9 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -3377,7 +3377,9 @@ dwarf2_compute_name (char *name, struct die_info *die, struct dwarf2_cu *cu, but we haven't started looking at this enhancement yet. */ struct attribute *attr; - attr = dwarf2_attr (die, DW_AT_MIPS_linkage_name, cu); + attr = dwarf2_attr (die, DW_AT_linkage_name, cu); + if (attr == NULL) + attr = dwarf2_attr (die, DW_AT_MIPS_linkage_name, cu); if (attr && DW_STRING (attr)) name = DW_STRING (attr); } @@ -6849,7 +6851,11 @@ read_partial_die (struct partial_die_info *part_die, break; } break; + case DW_AT_linkage_name: case DW_AT_MIPS_linkage_name: + /* Note that both forms of linkage name might appear. We + assume they will be the same, and we only store the last + one we see. */ if (cu->language == language_ada) part_die->name = DW_STRING (&attr); break; @@ -9685,6 +9691,8 @@ dwarf_attr_name (unsigned attr) /* DWARF 4 values. */ case DW_AT_signature: return "DW_AT_signature"; + case DW_AT_linkage_name: + return "DW_AT_linkage_name"; /* SGI/MIPS extensions. */ #ifdef MIPS /* collides with DW_AT_HP_block_index */ case DW_AT_MIPS_fde: -- 2.30.2