diff options
Diffstat (limited to 'gdb/dwarf2read.c')
-rw-r--r-- | gdb/dwarf2read.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index a83a69c..b2efc17 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -380,6 +380,7 @@ struct partial_die_info sometimes DW_TAG_MIPS_linkage_name or a string computed in some other fashion. */ char *name; + char *dirname; /* The scope to prepend to our children. This is generally allocated on the comp_unit_obstack, so will disappear @@ -1349,6 +1350,9 @@ dwarf2_build_psymtabs_hard (struct objfile *objfile, int mainline) objfile->global_psymbols.next, objfile->static_psymbols.next); + if (comp_unit_die.dirname) + pst->dirname = xstrdup (comp_unit_die.dirname); + pst->read_symtab_private = (char *) obstack_alloc (&objfile->objfile_obstack, sizeof (struct dwarf2_pinfo)); DWARF_INFO_OFFSET (pst) = beg_of_comp_unit - dwarf2_per_objfile->info_buffer; @@ -4875,6 +4879,10 @@ read_partial_die (struct partial_die_info *part_die, if (part_die->name == NULL) part_die->name = DW_STRING (&attr); break; + case DW_AT_comp_dir: + if (part_die->dirname == NULL) + part_die->dirname = DW_STRING (&attr); + break; case DW_AT_MIPS_linkage_name: part_die->name = DW_STRING (&attr); break; |