diff options
Diffstat (limited to 'bfd/dwarf2.c')
-rw-r--r-- | bfd/dwarf2.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index be8ba38..fb5cf9f 100644 --- a/bfd/dwarf2.c +++ b/bfd/dwarf2.c @@ -1291,8 +1291,17 @@ find_abstract_instance_name (struct comp_unit *unit, bfd_uint64_t die_ref) for (i = 0; i < abbrev->num_attrs && !name; ++i) { info_ptr = read_attribute (&attr, &abbrev->attrs[i], unit, info_ptr); - if (attr.name == DW_AT_name) - name = attr.u.str; + switch (attr.name) + { + case DW_AT_name: + name = attr.u.str; + break; + case DW_AT_specification: + name = find_abstract_instance_name (unit, attr.u.val); + break; + default: + break; + } } } } |