public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM]  archer-tromey-multi-inferior: make SYMBOL_VALUE_ADDRESS an lvalue
@ 2010-09-29 22:38 tromey
  0 siblings, 0 replies; only message in thread
From: tromey @ 2010-09-29 22:38 UTC (permalink / raw)
  To: archer-commits

The branch, archer-tromey-multi-inferior has been updated
       via  a87db5751bce6197360540b4d6a01bd088f8969b (commit)
       via  126d6a137a41200f4c8c88e1c73dafd2af72c9f1 (commit)
       via  8d72902f71f85029cdba8aed1655d2b0aa523d88 (commit)
      from  8ae22c773d54261ec9bb6633b25ff3e956590597 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit a87db5751bce6197360540b4d6a01bd088f8969b
Author: Tom Tromey <tromey@redhat.com>
Date:   Wed Sep 29 16:38:10 2010 -0600

    make SYMBOL_VALUE_ADDRESS an lvalue

commit 126d6a137a41200f4c8c88e1c73dafd2af72c9f1
Author: Tom Tromey <tromey@redhat.com>
Date:   Wed Sep 29 15:06:11 2010 -0600

    move section_offsets from storage to wrapper

commit 8d72902f71f85029cdba8aed1655d2b0aa523d88
Author: Tom Tromey <tromey@redhat.com>
Date:   Wed Sep 29 13:46:48 2010 -0600

    Remove OBJFILE_PSPACE and SYMTAB_PSPACE
    It is not clear to me that this patch is actually correct.
    I'm not certain that current_program_space is set properly where we use it.

-----------------------------------------------------------------------

Summary of changes:
 gdb/coffread.c   |   12 ++++++++----
 gdb/dwarf2read.c |   16 ++++++++++------
 gdb/jv-lang.c    |    2 +-
 gdb/linespec.c   |    2 +-
 gdb/machoread.c  |    3 +--
 gdb/mdebugread.c |    6 +++---
 gdb/minsyms.c    |    4 ++--
 gdb/mips-tdep.c  |    2 +-
 gdb/objfiles.c   |   19 +++++++++++--------
 gdb/objfiles.h   |   32 +++++++++++++-------------------
 gdb/printcmd.c   |    1 -
 gdb/psymtab.c    |   12 +++++++-----
 gdb/sh64-tdep.c  |    2 +-
 gdb/somread.c    |    3 +--
 gdb/source.c     |    2 +-
 gdb/stabsread.c  |   20 +++++++++++---------
 gdb/symfile.c    |    8 +++-----
 gdb/symtab.c     |    2 +-
 gdb/symtab.h     |    6 ++++--
 gdb/xcoffread.c  |    8 ++++----
 20 files changed, 84 insertions(+), 78 deletions(-)

First 500 lines of diff:
diff --git a/gdb/coffread.c b/gdb/coffread.c
index 933d7da..623a431 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -1553,8 +1553,10 @@ process_coff_symbol (struct coff_symbol *cs,
 	case C_THUMBEXTFUNC:
 	case C_EXT:
 	  SYMBOL_CLASS (sym) = LOC_STATIC;
-	  SYMBOL_VALUE_ADDRESS (sym) = (CORE_ADDR) cs->c_value;
-	  SYMBOL_VALUE_ADDRESS (sym) += ANOFFSET (OBJFILE_SECTION_OFFSETS (objfile), SECT_OFF_TEXT (objfile));
+	  SET_SYMBOL_VALUE_ADDRESS (sym,
+				    ((CORE_ADDR) cs->c_value)
+				    + ANOFFSET (OBJFILE_SECTION_OFFSETS (objfile),
+						SECT_OFF_TEXT (objfile)));
 	  add_symbol_to_list (sym, &global_symbols);
 	  break;
 
@@ -1562,8 +1564,10 @@ process_coff_symbol (struct coff_symbol *cs,
 	case C_THUMBSTATFUNC:
 	case C_STAT:
 	  SYMBOL_CLASS (sym) = LOC_STATIC;
-	  SYMBOL_VALUE_ADDRESS (sym) = (CORE_ADDR) cs->c_value;
-	  SYMBOL_VALUE_ADDRESS (sym) += ANOFFSET (OBJFILE_SECTION_OFFSETS (objfile), SECT_OFF_TEXT (objfile));
+	  SET_SYMBOL_VALUE_ADDRESS (sym,
+				    ((CORE_ADDR) cs->c_value)
+				    + ANOFFSET (OBJFILE_SECTION_OFFSETS (objfile),
+						SECT_OFF_TEXT (objfile)));
 	  if (within_function)
 	    {
 	      /* Static symbol of local scope */
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 16ed045..88e7e1a 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -5741,7 +5741,7 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu)
 	      else
 		dwarf2_complex_location_expr_complaint ();
 
-	      SYMBOL_VALUE_ADDRESS (sym) = base + byte_offset;
+	      SET_SYMBOL_VALUE_ADDRESS (sym, base + byte_offset);
 	      add_symbol_to_list (sym, &global_symbols);
 	    }
 	  child_die = sibling_die (child_die);
@@ -8700,12 +8700,16 @@ var_decode_location (struct attribute *attr, struct symbol *sym,
     {
       unsigned int dummy;
 
-      SYMBOL_VALUE_ADDRESS (sym) =
-	read_address (OBJFILE_OBFD (objfile), DW_BLOCK (attr)->data + 1, cu, &dummy);
+      SET_SYMBOL_VALUE_ADDRESS (sym,
+				read_address (OBJFILE_OBFD (objfile),
+					      DW_BLOCK (attr)->data + 1,
+					      cu, &dummy));
       SYMBOL_CLASS (sym) = LOC_STATIC;
       fixup_symbol_section (sym, objfile);
-      SYMBOL_VALUE_ADDRESS (sym) += ANOFFSET (OBJFILE_SECTION_OFFSETS (objfile),
-					      SYMBOL_SECTION (sym));
+      SET_SYMBOL_VALUE_ADDRESS (sym,
+				SYMBOL_VALUE_ADDRESS (sym)
+				+ ANOFFSET (OBJFILE_SECTION_OFFSETS (objfile),
+					    SYMBOL_SECTION (sym)));
       return;
     }
 
@@ -8803,7 +8807,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
 	  attr = dwarf2_attr (die, DW_AT_low_pc, cu);
 	  if (attr)
 	    {
-	      SYMBOL_VALUE_ADDRESS (sym) = DW_ADDR (attr) + baseaddr;
+	      SET_SYMBOL_VALUE_ADDRESS (sym, DW_ADDR (attr) + baseaddr);
 	    }
 	  SYMBOL_CLASS (sym) = LOC_LABEL;
 	  break;
diff --git a/gdb/jv-lang.c b/gdb/jv-lang.c
index fe99928..ad8e924 100644
--- a/gdb/jv-lang.c
+++ b/gdb/jv-lang.c
@@ -152,7 +152,7 @@ add_class_symbol (struct type *type, CORE_ADDR addr)
   /*  SYMBOL_VALUE (sym) = valu; */
   SYMBOL_TYPE (sym) = type;
   SYMBOL_DOMAIN (sym) = STRUCT_DOMAIN;
-  SYMBOL_VALUE_ADDRESS (sym) = addr;
+  SET_SYMBOL_VALUE_ADDRESS (sym, addr);
   return sym;
 }
 
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 378c6c9..119b5d6 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -1751,7 +1751,7 @@ decode_all_digits (char **argptr, struct symtab *default_symtab,
   if (val.symtab == 0)
     val.symtab = file_symtab;
 
-  val.pspace = SYMTAB_PSPACE (val.symtab);
+  val.pspace = current_program_space;
   val.pc = 0;
   values.sals = (struct symtab_and_line *)
     xmalloc (sizeof (struct symtab_and_line));
diff --git a/gdb/machoread.c b/gdb/machoread.c
index bb3268c..c505ca5 100644
--- a/gdb/machoread.c
+++ b/gdb/machoread.c
@@ -791,8 +791,7 @@ macho_symfile_offsets (struct objfile *objfile,
   /* Allocate section_offsets.  */
   objfile->num_sections = bfd_count_sections (objfile->obfd);
   objfile->section_offsets = (struct section_offsets *)
-    obstack_alloc (&objfile->objfile_obstack,
-                   SIZEOF_N_SECTION_OFFSETS (objfile->num_sections));
+    xmalloc (SIZEOF_N_SECTION_OFFSETS (objfile->num_sections));
   memset (objfile->section_offsets, 0,
           SIZEOF_N_SECTION_OFFSETS (objfile->num_sections));
 
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index 9ef2221..234874e 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -599,7 +599,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
       b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (top_stack->cur_st),
 			     GLOBAL_BLOCK);
       s = new_symbol (name);
-      SYMBOL_VALUE_ADDRESS (s) = (CORE_ADDR) sh->value;
+      SET_SYMBOL_VALUE_ADDRESS (s, (CORE_ADDR) sh->value);
       goto data;
 
     case stStatic:		/* static data, goes into current block. */
@@ -616,7 +616,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
 	  global_sym_chain[bucket] = s;
 	}
       else
-	SYMBOL_VALUE_ADDRESS (s) = (CORE_ADDR) sh->value;
+	SET_SYMBOL_VALUE_ADDRESS (s, (CORE_ADDR) sh->value);
       goto data;
 
     case stLocal:		/* local variable, goes into current block */
@@ -687,7 +687,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
       s = new_symbol (name);
       SYMBOL_DOMAIN (s) = VAR_DOMAIN;	/* so that it can be used */
       SYMBOL_CLASS (s) = LOC_LABEL;	/* but not misused */
-      SYMBOL_VALUE_ADDRESS (s) = (CORE_ADDR) sh->value;
+      SET_SYMBOL_VALUE_ADDRESS (s, (CORE_ADDR) sh->value);
       SYMBOL_TYPE (s) = objfile_type (objfile)->builtin_int;
       add_symbol (s, top_stack->cur_st, top_stack->cur_block);
       break;
diff --git a/gdb/minsyms.c b/gdb/minsyms.c
index fdd51b0..e0ca8ca 100644
--- a/gdb/minsyms.c
+++ b/gdb/minsyms.c
@@ -844,7 +844,7 @@ prim_record_minimal_symbol_full (const char *name, int name_len, int copy_name,
   SYMBOL_LANGUAGE (msymbol) = language_auto;
   SYMBOL_SET_NAMES (msymbol, name, name_len, copy_name, objfile);
 
-  SYMBOL_VALUE_ADDRESS (msymbol) = address;
+  SET_SYMBOL_VALUE_ADDRESS (msymbol, address);
   SYMBOL_SECTION (msymbol) = section;
   SYMBOL_OBJ_SECTION (msymbol) = NULL;
 
@@ -1147,7 +1147,7 @@ install_minimal_symbols (struct objfile *objfile)
          is indexed by mcount and not mcount-1. */
 
       SYMBOL_LINKAGE_NAME (&msymbols[mcount]) = NULL;
-      SYMBOL_VALUE_ADDRESS (&msymbols[mcount]) = 0;
+      SET_SYMBOL_VALUE_ADDRESS (&msymbols[mcount], 0);
       MSYMBOL_TARGET_FLAG_1 (&msymbols[mcount]) = 0;
       MSYMBOL_TARGET_FLAG_2 (&msymbols[mcount]) = 0;
       MSYMBOL_SIZE (&msymbols[mcount]) = 0;
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 7e15041..aeb27fa 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -264,7 +264,7 @@ mips_elf_make_msymbol_special (asymbol * sym, struct minimal_symbol *msym)
   if (((elf_symbol_type *) (sym))->internal_elf_sym.st_other == STO_MIPS16)
     {
       MSYMBOL_TARGET_FLAG_1 (msym) = 1;
-      SYMBOL_VALUE_ADDRESS (msym) |= 1;
+      SET_SYMBOL_VALUE_ADDRESS (msym, SYMBOL_VALUE_ADDRESS (msym) | 1);
     }
 }
 
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index ee07ab7..70a1f2d 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -242,8 +242,6 @@ allocate_objfile (bfd *abfd, int flags)
       OBJFILE_NAME (objfile) = xstrdup ("<<anonymous objfile>>");
     }
 
-  OBJFILE_PSPACE (objfile) = current_program_space;
-
   /* Initialize the section indexes for this objfile, so that we can
      later detect if they are used w/o being properly assigned to. */
 
@@ -270,7 +268,7 @@ allocate_objfile (bfd *abfd, int flags)
   OBJFILE_FLAGS (objfile) |= flags;
 
   /* Rebuild section map next time we need it.  */
-  get_objfile_pspace_data (OBJFILE_PSPACE (objfile))->objfiles_changed_p = 1;
+  get_objfile_pspace_data (current_program_space)->objfiles_changed_p = 1;
 
   return objfile;
 }
@@ -638,8 +636,9 @@ do_free_objfile (struct objfile *objfile)
   obstack_free (&OBJFILE_OBSTACK (objfile), 0);
 
   /* Rebuild section map next time we need it.  */
-  get_objfile_pspace_data (OBJFILE_PSPACE (objfile))->objfiles_changed_p = 1;
+  get_objfile_pspace_data (current_program_space)->objfiles_changed_p = 1;
 
+  xfree (objfile->section_offsets);
   xfree (objfile->storage);
   xfree (objfile);
 }
@@ -767,8 +766,10 @@ objfile_relocate1 (struct objfile *objfile,
 		   || SYMBOL_CLASS (sym) == LOC_STATIC)
 		  && SYMBOL_SECTION (sym) >= 0)
 		{
-		  SYMBOL_VALUE_ADDRESS (sym) +=
-		    ANOFFSET (delta, SYMBOL_SECTION (sym));
+		  SET_SYMBOL_VALUE_ADDRESS (sym,
+					    SYMBOL_VALUE_ADDRESS (sym)
+					    + ANOFFSET (delta,
+							SYMBOL_SECTION (sym)));
 		}
 	    }
 	}
@@ -787,7 +788,9 @@ objfile_relocate1 (struct objfile *objfile,
 
     ALL_OBJFILE_MSYMBOLS (objfile, msym)
       if (SYMBOL_SECTION (msym) >= 0)
-      SYMBOL_VALUE_ADDRESS (msym) += ANOFFSET (delta, SYMBOL_SECTION (msym));
+	SET_SYMBOL_VALUE_ADDRESS (msym,
+				  SYMBOL_VALUE_ADDRESS (msym)
+				  + ANOFFSET (delta, SYMBOL_SECTION (msym)));
   }
   /* Relocating different sections by different amounts may cause the symbols
      to be out of order.  */
@@ -813,7 +816,7 @@ objfile_relocate1 (struct objfile *objfile,
   }
 
   /* Rebuild section map next time we need it.  */
-  get_objfile_pspace_data (OBJFILE_PSPACE (objfile))->objfiles_changed_p = 1;
+  get_objfile_pspace_data (current_program_space)->objfiles_changed_p = 1;
 
   /* Update the table in exec_ops, used to read memory.  */
   ALL_OBJFILE_OSECTIONS (objfile, s)
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index dc85e2e..b309b10 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -182,10 +182,6 @@ struct objfile_storage
 
     unsigned short flags;
 
-    /* The program space associated with this objfile.  */
-
-    struct program_space *pspace;
-
     /* Each objfile points to a linked list of symtabs derived from this file,
        one symtab structure for each compilation unit (source file).  Each link
        in the symtab list contains a backpointer to this objfile. */
@@ -313,18 +309,6 @@ struct objfile_storage
     void **data;
     unsigned num_data;
 
-    /* Set of relocation offsets to apply to each section.
-       Currently on the objfile_obstack (which makes no sense, but I'm
-       not sure it's harming anything).
-
-       These offsets indicate that all symbols (including partial and
-       minimal symbols) which have been read have been relocated by this
-       much.  Symbols which are yet to be read need to be relocated by
-       it.  */
-
-    struct section_offsets *section_offsets;
-    int num_sections;
-
     /* Indexes in the section_offsets array. These are initialized by the
        *_symfile_offsets() family of functions (som_symfile_offsets,
        xcoff_symfile_offsets, default_symfile_offsets). In theory they
@@ -381,12 +365,22 @@ struct objfile_storage
 struct objfile
 {
   struct objfile_storage *storage;
+
+  /* Set of relocation offsets to apply to each section.  Allocated
+     with xmalloc.
+
+     These offsets indicate that all symbols (including partial and
+     minimal symbols) which have been read have been relocated by this
+     much.  Symbols which are yet to be read need to be relocated by
+     it.  */
+
+  struct section_offsets *section_offsets;
+  int num_sections;
 };
 
 #define OBJFILE_NAME(obj) ((obj)->storage->name)
 #define OBJFILE_REFC(obj) ((obj)->storage->refc)
 #define OBJFILE_FLAGS(obj) ((obj)->storage->flags)
-#define OBJFILE_PSPACE(obj) ((obj)->storage->pspace)
 #define OBJFILE_SYMTABS(obj) ((obj)->storage->symtabs)
 #define OBJFILE_PSYMTABS(obj) ((obj)->storage->psymtabs)
 #define OBJFILE_PSYMTABS_ADDRMAP(obj) ((obj)->storage->psymtabs_addrmap)
@@ -411,8 +405,8 @@ struct objfile
 #define OBJFILE_DEPRECATED_SYM_PRIVATE(obj) ((obj)->storage->deprecated_sym_private)
 #define OBJFILE_DATA(obj) ((obj)->storage->data)
 #define OBJFILE_NUM_DATA(obj) ((obj)->storage->num_data)
-#define OBJFILE_SECTION_OFFSETS(obj) ((obj)->storage->section_offsets)
-#define OBJFILE_NUM_SECTIONS(obj) ((obj)->storage->num_sections)
+#define OBJFILE_SECTION_OFFSETS(obj) ((obj)->section_offsets)
+#define OBJFILE_NUM_SECTIONS(obj) ((obj)->num_sections)
 #define OBJFILE_SECT_INDEX_TEXT(obj) ((obj)->storage->sect_index_text)
 #define OBJFILE_SECT_INDEX_DATA(obj) ((obj)->storage->sect_index_data)
 #define OBJFILE_SECT_INDEX_BSS(obj) ((obj)->storage->sect_index_bss)
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 74bcabf..4aceda6 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -1914,7 +1914,6 @@ clear_dangling_display_expressions (struct so_list *solib)
     return;
   if (OBJFILE_SEPARATE_DEBUG_OBJFILE_BACKLINK (objfile))
     objfile = OBJFILE_SEPARATE_DEBUG_OBJFILE_BACKLINK (objfile);
-  gdb_assert (OBJFILE_PSPACE (objfile) == solib->pspace);
 
   for (d = display_chain; d != NULL; d = d->next)
     {
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index a54c9c6..434d73e 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -547,8 +547,9 @@ relocate_psymtabs (struct objfile *objfile,
     {
       fixup_psymbol_section (*psym, objfile);
       if (SYMBOL_SECTION (*psym) >= 0)
-	SYMBOL_VALUE_ADDRESS (*psym) += ANOFFSET (delta,
-						  SYMBOL_SECTION (*psym));
+	SET_SYMBOL_VALUE_ADDRESS (*psym, (SYMBOL_VALUE_ADDRESS (*psym)
+					  + ANOFFSET (delta,
+						      SYMBOL_SECTION (*psym))));
     }
   for (psym = OBJFILE_STATIC_PSYMBOLS (objfile).list;
        psym < OBJFILE_STATIC_PSYMBOLS (objfile).next;
@@ -556,8 +557,9 @@ relocate_psymtabs (struct objfile *objfile,
     {
       fixup_psymbol_section (*psym, objfile);
       if (SYMBOL_SECTION (*psym) >= 0)
-	SYMBOL_VALUE_ADDRESS (*psym) += ANOFFSET (delta,
-						  SYMBOL_SECTION (*psym));
+	SET_SYMBOL_VALUE_ADDRESS (*psym, (SYMBOL_VALUE_ADDRESS (*psym)
+					  + ANOFFSET (delta,
+						      SYMBOL_SECTION (*psym))));
     }
 }
 
@@ -1292,7 +1294,7 @@ add_psymbol_to_bcache (char *name, int namelength, int copy_name,
     }
   else
     {
-      SYMBOL_VALUE_ADDRESS (&psymbol) = coreaddr;
+      SET_SYMBOL_VALUE_ADDRESS (&psymbol, coreaddr);
     }
   SYMBOL_SECTION (&psymbol) = 0;
   SYMBOL_LANGUAGE (&psymbol) = language;
diff --git a/gdb/sh64-tdep.c b/gdb/sh64-tdep.c
index 8a64f97..99a1aa0 100644
--- a/gdb/sh64-tdep.c
+++ b/gdb/sh64-tdep.c
@@ -223,7 +223,7 @@ sh64_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
   if (((elf_symbol_type *)(sym))->internal_elf_sym.st_other == STO_SH5_ISA32)
     {
       MSYMBOL_TARGET_FLAG_1 (msym) = 1;
-      SYMBOL_VALUE_ADDRESS (msym) |= 1;
+      SET_SYMBOL_VALUE_ADDRESS (msym, SYMBOL_VALUE_ADDRESS (msym) | 1);
     }
 }
 
diff --git a/gdb/somread.c b/gdb/somread.c
index cc36042..9fd33fb 100644
--- a/gdb/somread.c
+++ b/gdb/somread.c
@@ -392,8 +392,7 @@ som_symfile_offsets (struct objfile *objfile, struct section_addr_info *addrs)
 
   objfile->num_sections = bfd_count_sections (objfile->obfd);
   objfile->section_offsets = (struct section_offsets *)
-    obstack_alloc (&objfile->objfile_obstack, 
-		   SIZEOF_N_SECTION_OFFSETS (objfile->num_sections));
+    xmalloc (SIZEOF_N_SECTION_OFFSETS (objfile->num_sections));
 
   /* FIXME: ezannoni 2000-04-20 The section names in SOM are not
      .text, .data, etc, but $TEXT$, $DATA$,... We should initialize
diff --git a/gdb/source.c b/gdb/source.c
index 269f347..99617b6 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -236,7 +236,7 @@ select_source_symtab (struct symtab *s)
     {
       current_source_symtab = s;
       current_source_line = 1;
-      current_source_pspace = SYMTAB_PSPACE (s);
+      current_source_pspace = current_program_space;
       return;
     }
 
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index 16443c7..7f47de0 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -904,7 +904,7 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       SYMBOL_CLASS (sym) = LOC_LABEL;
       SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
-      SYMBOL_VALUE_ADDRESS (sym) = valu;
+      SET_SYMBOL_VALUE_ADDRESS (sym, valu);
       add_symbol_to_list (sym, &local_symbols);
       break;
 
@@ -1151,7 +1151,7 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
       /* Static symbol at top level of file */
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       SYMBOL_CLASS (sym) = LOC_STATIC;
-      SYMBOL_VALUE_ADDRESS (sym) = valu;
+      SET_SYMBOL_VALUE_ADDRESS (sym, valu);
       if (gdbarch_static_transform_name_p (gdbarch)
 	  && gdbarch_static_transform_name (gdbarch,
 					    SYMBOL_LINKAGE_NAME (sym))
@@ -1166,7 +1166,7 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
 		(gdbarch, SYMBOL_LINKAGE_NAME (sym));
 
 	      SYMBOL_SET_LINKAGE_NAME (sym, new_name);
-	      SYMBOL_VALUE_ADDRESS (sym) = SYMBOL_VALUE_ADDRESS (msym);
+	      SET_SYMBOL_VALUE_ADDRESS (sym, SYMBOL_VALUE_ADDRESS (msym));
 	    }
 	}
       SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
@@ -1340,7 +1340,7 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
       /* Static symbol of local scope */
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       SYMBOL_CLASS (sym) = LOC_STATIC;
-      SYMBOL_VALUE_ADDRESS (sym) = valu;
+      SET_SYMBOL_VALUE_ADDRESS (sym, valu);
       if (gdbarch_static_transform_name_p (gdbarch)
 	  && gdbarch_static_transform_name (gdbarch,
 					    SYMBOL_LINKAGE_NAME (sym))
@@ -1356,7 +1356,7 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
 		(gdbarch, SYMBOL_LINKAGE_NAME (sym));
 
 	      SYMBOL_SET_LINKAGE_NAME (sym, new_name);
-	      SYMBOL_VALUE_ADDRESS (sym) = SYMBOL_VALUE_ADDRESS (msym);
+	      SET_SYMBOL_VALUE_ADDRESS (sym, SYMBOL_VALUE_ADDRESS (msym));
 	    }
 	}
       SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
@@ -4376,7 +4376,9 @@ fix_common_block (struct symbol *sym, int valu)
       int j;
 
       for (j = next->nsyms - 1; j >= 0; j--)
-	SYMBOL_VALUE_ADDRESS (next->symbol[j]) += valu;
+	SET_SYMBOL_VALUE_ADDRESS (next->symbol[j],
+				  SYMBOL_VALUE_ADDRESS (next->symbol[j])
+				  + valu);
     }
 }
 \f
@@ -4657,8 +4659,8 @@ scan_file_globals (struct objfile *objfile)
 			}
 		      else
 			{
-			  SYMBOL_VALUE_ADDRESS (sym)
-			    = SYMBOL_VALUE_ADDRESS (msymbol);
+			  SET_SYMBOL_VALUE_ADDRESS (sym,
+						    SYMBOL_VALUE_ADDRESS (msymbol));
 			}
 		      SYMBOL_SECTION (sym) = SYMBOL_SECTION (msymbol);
 		    }
@@ -4696,7 +4698,7 @@ scan_file_globals (struct objfile *objfile)
 
 	  /* Change the symbol address from the misleading chain value
 	     to address zero.  */
-	  SYMBOL_VALUE_ADDRESS (prev) = 0;
+	  SET_SYMBOL_VALUE_ADDRESS (prev, 0);
 
 	  /* Complain about unresolved common block symbols.  */
 	  if (SYMBOL_CLASS (prev) == LOC_STATIC)
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 19e78ee..71b52e4 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -734,8 +734,7 @@ default_symfile_offsets (struct objfile *objfile,
 {
   OBJFILE_NUM_SECTIONS (objfile) = bfd_count_sections (OBJFILE_OBFD (objfile));
   OBJFILE_SECTION_OFFSETS (objfile) = (struct section_offsets *)
-    obstack_alloc (&OBJFILE_OBSTACK (objfile),
-		   SIZEOF_N_SECTION_OFFSETS (OBJFILE_NUM_SECTIONS (objfile)));
+    xmalloc (SIZEOF_N_SECTION_OFFSETS (OBJFILE_NUM_SECTIONS (objfile)));
   relative_addr_info_to_section_offsets (OBJFILE_SECTION_OFFSETS (objfile),
 					 OBJFILE_NUM_SECTIONS (objfile), addrs);
 
@@ -990,7 +989,7 @@ syms_from_objfile (struct objfile *objfile,
       OBJFILE_NUM_SECTIONS (objfile) = num_offsets;
       OBJFILE_SECTION_OFFSETS (objfile)


hooks/post-receive
--
Repository for Project Archer.


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-09-29 22:38 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-29 22:38 [SCM] archer-tromey-multi-inferior: make SYMBOL_VALUE_ADDRESS an lvalue tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).