* dwarf2read.c (dwarf2_symbol_mark_computed): Fix formatting.
authorDaniel Jacobowitz <drow@false.org>
Tue, 5 Jun 2007 15:04:40 +0000 (15:04 +0000)
committerDaniel Jacobowitz <drow@false.org>
Tue, 5 Jun 2007 15:04:40 +0000 (15:04 +0000)
Use the original objfile if necessary.

gdb/ChangeLog
gdb/dwarf2read.c

index dfa0426..d7e4fa5 100644 (file)
@@ -1,3 +1,8 @@
+2007-06-05  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * dwarf2read.c (dwarf2_symbol_mark_computed): Fix formatting.
+       Use the original objfile if necessary.
+
 2007-06-04  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * defs.h (ldirname): New prototype.
index 6314c4c..80915a8 100644 (file)
@@ -1046,9 +1046,9 @@ static void dwarf_decode_macros (struct line_header *, unsigned int,
 
 static int attr_form_is_block (struct attribute *);
 
-static void
-dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
-                            struct dwarf2_cu *cu);
+static void dwarf2_symbol_mark_computed (struct attribute *attr,
+                                        struct symbol *sym,
+                                        struct dwarf2_cu *cu);
 
 static gdb_byte *skip_one_die (gdb_byte *info_ptr, struct abbrev_info *abbrev,
                                struct dwarf2_cu *cu);
@@ -9698,6 +9698,13 @@ static void
 dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
                             struct dwarf2_cu *cu)
 {
+  struct objfile *objfile = cu->objfile;
+
+  /* Save the master objfile, so that we can report and look up the
+     correct file containing this variable.  */
+  if (objfile->separate_debug_objfile_backlink)
+    objfile = objfile->separate_debug_objfile_backlink;
+
   if ((attr->form == DW_FORM_data4 || attr->form == DW_FORM_data8)
       /* ".debug_loc" may not exist at all, or the offset may be outside
         the section.  If so, fall through to the complaint in the
@@ -9708,7 +9715,7 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
 
       baton = obstack_alloc (&cu->objfile->objfile_obstack,
                             sizeof (struct dwarf2_loclist_baton));
-      baton->objfile = cu->objfile;
+      baton->objfile = objfile;
 
       /* We don't know how long the location list is, but make sure we
         don't run off the edge of the section.  */
@@ -9728,7 +9735,7 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
 
       baton = obstack_alloc (&cu->objfile->objfile_obstack,
                             sizeof (struct dwarf2_locexpr_baton));
-      baton->objfile = cu->objfile;
+      baton->objfile = objfile;
 
       if (attr_form_is_block (attr))
        {