* dwarf2read.c (dwarf2_psymtab_to_symtab): Propagate
authorKevin Buettner <kevinb@redhat.com>
Sat, 13 Jun 2009 04:23:34 +0000 (04:23 +0000)
committerKevin Buettner <kevinb@redhat.com>
Sat, 13 Jun 2009 04:23:34 +0000 (04:23 +0000)
`has_section_at_zero' flag from stripped objfile to separate,
debug info only, objfile.

gdb/ChangeLog
gdb/dwarf2read.c

index 26c7b2a4455845c83080a46ad41b27cf5c36dcb8..a6c1a8bf27ad2403887264fb7d1ce9e8f8483bec 100644 (file)
@@ -1,3 +1,9 @@
+2009-06-12  Kevin Buettner  <kevinb@redhat.com>
+
+       * dwarf2read.c (dwarf2_psymtab_to_symtab): Propagate
+       `has_section_at_zero' flag from stripped objfile to separate,
+       debug info only, objfile.
+
 2009-06-12  Pedro Alves  <pedro@codesourcery.com>
 
        * exec.h (section_table_xfer_memory_partial): Improve description,
index 6da8f4ed9efac9ca4cf889c6ab3abfc9fe6b20ac..849b2afc0715b0f47ee5cc99c29afb42e01e9cc1 100644 (file)
@@ -2541,6 +2541,19 @@ dwarf2_psymtab_to_symtab (struct partial_symtab *pst)
          dwarf2_per_objfile = objfile_data (pst->objfile,
                                             dwarf2_objfile_data_key);
 
+         /* If this psymtab is constructed from a debug-only objfile, the
+            has_section_at_zero flag will not necessarily be correct.  We
+            can get the correct value for this flag by looking at the data
+            associated with the (presumably stripped) associated objfile.  */
+         if (pst->objfile->separate_debug_objfile_backlink)
+           {
+             struct dwarf2_per_objfile *dpo_backlink
+               = objfile_data (pst->objfile->separate_debug_objfile_backlink,
+                               dwarf2_objfile_data_key);
+             dwarf2_per_objfile->has_section_at_zero
+               = dpo_backlink->has_section_at_zero;
+           }
+
          psymtab_to_symtab_1 (pst);
 
          /* Finish up the debug error message.  */