This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[rfa/symbol readers] Clean up setting symbols' names


This patch does a couple of related things.

1.  It adds a macro, SYMBOL_SET_LINKAGE_NAME, which is used to set a
symbol's name when the name should not be demangled.  Used for things like
typedefs whose name comes from debug info.  I did not change anything
related to memory allocation when I did this - though in hpread I found a
few inconsistencies.

2.  It makes hpread use SYMBOL_SET_NAMES.  It contained some fallback code
to use the debug info if demangling failed; I've disabled it, because from
the description it sounds like the right thing to do would be to fix the
demangler instead.  I can't tell whether the code is currently used or not,
so I would appreciate HP/UX testing for this patch.

In the process I also kill a couple of DEPRECATED_SYMBOL_NAME uses, and the
redundant function add_psymbol_with_dem_name_to_list.

No testsuite changes with DWARF2 or stabs+ on i386-linux.  OK?

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer

2004-02-16  Daniel Jacobowitz  <drow@mvista.com>

	* symtab.h (SYMBOL_SET_LINKAGE_NAME): Define.

	* ada-lang.c (add_symbols_from_enclosing_procs): Use
	SYMBOL_SET_LINKAGE_NAME.
	* dwarfread.c (enum_type, synthesize_typedef): Likewise.
	* jv-lang.c (add_class_symbol): Likewise.
	* stabsread.c (patch_block_stabs, define_symbol, read_enum_type)
	(common_block_end): Likewise.
	* xcoffread.c (process_xcoff_symbol): Likewise.

	* symfile.c (add_psymbol_with_dem_name_to_list): Remove.
	* symfile.h (add_psymbol_with_dem_name_to_list): Remove prototype.
	* objfiles.c (terminate_minimal_symbol_table): Remove unnecessary
	initializations.

	* hpread.c (scan_procs): Use SYMBOL_SET_NAMES.  Remove calls to
	add_psymbol_with_dem_name_to_list.
	(hpread_read_enum_type, hpread_read_function_type)
	(hpread_read_doc_function_type): Use SYMBOL_SET_LINKAGE_NAME.
	(hpread_process_one_debug_symbol): Likewise.  Use SYMBOL_SET_NAMES
	and rely on the demangler.

Index: ada-lang.c
===================================================================
RCS file: /cvs/src/src/gdb/ada-lang.c,v
retrieving revision 1.35
diff -u -p -r1.35 ada-lang.c
--- ada-lang.c	23 Jan 2004 23:03:28 -0000	1.35
+++ ada-lang.c	15 Feb 2004 23:56:24 -0000
@@ -3533,7 +3533,7 @@ add_symbols_from_enclosing_procs (const 
       /* Initialize the local variable symbol that stands for the
        * static link (when it exists). */
       static_link = &static_link_sym;
-      DEPRECATED_SYMBOL_NAME (static_link) = "";
+      SYMBOL_SET_LINKAGE_NAME (static_link, "");
       SYMBOL_LANGUAGE (static_link) = language_unknown;
       SYMBOL_CLASS (static_link) = LOC_LOCAL;
       SYMBOL_DOMAIN (static_link) = VAR_DOMAIN;
Index: dwarfread.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarfread.c,v
retrieving revision 1.37
diff -u -p -r1.37 dwarfread.c
--- dwarfread.c	14 Feb 2004 15:46:32 -0000	1.37
+++ dwarfread.c	15 Feb 2004 23:56:27 -0000
@@ -1710,8 +1710,9 @@ enum_type (struct dieinfo *dip, struct o
 	  sym = (struct symbol *) obstack_alloc (&objfile->objfile_obstack,
 						 sizeof (struct symbol));
 	  memset (sym, 0, sizeof (struct symbol));
-	  DEPRECATED_SYMBOL_NAME (sym) = create_name (list->field.name,
-					   &objfile->objfile_obstack);
+	  SYMBOL_SET_LINKAGE_NAME (sym,
+				   create_name (list->field.name,
+						&objfile->objfile_obstack));
 	  SYMBOL_INIT_LANGUAGE_SPECIFIC (sym, cu_language);
 	  SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
 	  SYMBOL_CLASS (sym) = LOC_CONST;
@@ -3013,8 +3014,8 @@ synthesize_typedef (struct dieinfo *dip,
 	obstack_alloc (&objfile->objfile_obstack, sizeof (struct symbol));
       OBJSTAT (objfile, n_syms++);
       memset (sym, 0, sizeof (struct symbol));
-      DEPRECATED_SYMBOL_NAME (sym) = create_name (dip->at_name,
-				       &objfile->objfile_obstack);
+      SYMBOL_SET_LINKAGE_NAME (sym, create_name (dip->at_name,
+						 &objfile->objfile_obstack));
       SYMBOL_INIT_LANGUAGE_SPECIFIC (sym, cu_language);
       SYMBOL_TYPE (sym) = type;
       SYMBOL_CLASS (sym) = LOC_TYPEDEF;
Index: hpread.c
===================================================================
RCS file: /cvs/src/src/gdb/hpread.c,v
retrieving revision 1.45
diff -u -p -r1.45 hpread.c
--- hpread.c	7 Feb 2004 23:13:47 -0000	1.45
+++ hpread.c	15 Feb 2004 23:56:30 -0000
@@ -746,26 +746,24 @@ scan_procs (int *curr_pd_p, quick_proced
       if ((trans_lang ((enum hp_language) qPD[curr_pd].language) == language_cplus) &&
 	  vt_bits[(long) qPD[curr_pd].sbAlias])		/* not a null string */
 	{
-	  /* Get mangled name for the procedure, and demangle it */
+	  /* Get mangled name for the procedure.  */
 	  rtn_name = &vt_bits[(long) qPD[curr_pd].sbAlias];
-	  rtn_dem_name = cplus_demangle (rtn_name, DMGL_ANSI | DMGL_PARAMS);
 	}
       else
 	{
 	  rtn_name = &vt_bits[(long) qPD[curr_pd].sbProc];
-	  rtn_dem_name = NULL;
 	}
 
       /* Hack to get around HP C/C++ compilers' insistence on providing
          "_MAIN_" as an alternate name for "main" */
       if ((strcmp (rtn_name, "_MAIN_") == 0) &&
 	  (strcmp (&vt_bits[(long) qPD[curr_pd].sbProc], "main") == 0))
-	rtn_dem_name = rtn_name = main_string;
+	rtn_name = main_string;
 
 #ifdef DUMPING
       if (dumping)
 	{
-	  printf ("..add %s (demangled %s), index %x to this psymtab\n", rtn_name, rtn_dem_name, curr_pd);
+	  printf ("..add %s, index %x to this psymtab\n", rtn_name, curr_pd);
 	}
 #endif
 
@@ -786,31 +784,23 @@ scan_procs (int *curr_pd_p, quick_proced
          the correct list in the psymtab. - RT */
       dn_bufp = hpread_get_lntt (qPD[curr_pd].isym, objfile);
       if (dn_bufp->dfunc.global)
-	add_psymbol_with_dem_name_to_list (rtn_name,
-					   strlen (rtn_name),
-					   rtn_dem_name,
-					   strlen (rtn_dem_name),
-					   VAR_DOMAIN,
-					   LOC_BLOCK,	/* "I am a routine"        */
-					   &objfile->global_psymbols,
-					   (qPD[curr_pd].adrStart +	/* Starting address of rtn */
-				 ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile))),
-					   0,	/* core addr?? */
-		      trans_lang ((enum hp_language) qPD[curr_pd].language),
-					   objfile);
+	add_psymbol_to_list (rtn_name, strlen (rtn_name), VAR_DOMAIN,
+			     LOC_BLOCK,	/* "I am a routine"        */
+			     &objfile->global_psymbols,
+			     (qPD[curr_pd].adrStart +	/* Starting address of rtn */
+			      ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile))),
+			     0,	/* core addr?? */
+			     trans_lang ((enum hp_language) qPD[curr_pd].language),
+			     objfile);
       else
-	add_psymbol_with_dem_name_to_list (rtn_name,
-					   strlen (rtn_name),
-					   rtn_dem_name,
-					   strlen (rtn_dem_name),
-					   VAR_DOMAIN,
-					   LOC_BLOCK,	/* "I am a routine"        */
-					   &objfile->static_psymbols,
-					   (qPD[curr_pd].adrStart +	/* Starting address of rtn */
-				 ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile))),
-					   0,	/* core addr?? */
-		      trans_lang ((enum hp_language) qPD[curr_pd].language),
-					   objfile);
+	add_psymbol_to_list (rtn_name, strlen (rtn_name), VAR_DOMAIN,
+			     LOC_BLOCK,	/* "I am a routine"        */
+			     &objfile->static_psymbols,
+			     (qPD[curr_pd].adrStart +	/* Starting address of rtn */
+			      ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile))),
+			     0,	/* core addr?? */
+			     trans_lang ((enum hp_language) qPD[curr_pd].language),
+			     objfile);
 
       symbol_count++;
       *curr_pd_p = ++curr_pd;	/* bump up count & reflect in caller */
@@ -3124,14 +3114,17 @@ hpread_read_enum_type (dnttpointer hp_ty
   mem = dn_bufp->denum.firstmem;
   while (mem.word && mem.word != DNTTNIL)
     {
+      char *sym_name;
+
       memp = hpread_get_lntt (mem.dnttp.index, objfile);
 
       name = VT (objfile) + memp->dmember.name;
       sym = (struct symbol *) obstack_alloc (&objfile->objfile_obstack,
 					     sizeof (struct symbol));
       memset (sym, 0, sizeof (struct symbol));
-      DEPRECATED_SYMBOL_NAME (sym) = obsavestring (name, strlen (name),
-					&objfile->objfile_obstack);
+      sym_name = obsavestring (name, strlen (name),
+			       &objfile->objfile_obstack);
+      SYMBOL_SET_LINKAGE_NAME (sym, sym_name);
       SYMBOL_CLASS (sym) = LOC_CONST;
       SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
       SYMBOL_VALUE (sym) = memp->dmember.value;
@@ -3229,6 +3222,8 @@ hpread_read_function_type (dnttpointer h
     param = dn_bufp->dfunc_template.firstparam;
   while (param.word && param.word != DNTTNIL)
     {
+      char *sym_name;
+
       paramp = hpread_get_lntt (param.dnttp.index, objfile);
       nsyms++;
       param = paramp->dfparam.nextparam;
@@ -3238,8 +3233,10 @@ hpread_read_function_type (dnttpointer h
       sym = (struct symbol *) obstack_alloc (&objfile->objfile_obstack,
 					     sizeof (struct symbol));
       (void) memset (sym, 0, sizeof (struct symbol));
-      DEPRECATED_SYMBOL_NAME (sym) = obsavestring (name, strlen (name),
-					&objfile->objfile_obstack);
+
+      sym_name = obsavestring (name, strlen (name),
+			       &objfile->objfile_obstack);
+      SYMBOL_SET_LINKAGE_NAME (sym, sym_name);
 
       /* Figure out where it lives.  */
       if (paramp->dfparam.regparam)
@@ -3418,7 +3415,7 @@ hpread_read_doc_function_type (dnttpoint
       sym = (struct symbol *) obstack_alloc (&objfile->objfile_obstack,
 					     sizeof (struct symbol));
       (void) memset (sym, 0, sizeof (struct symbol));
-      DEPRECATED_SYMBOL_NAME (sym) = name;
+      SYMBOL_SET_LINKAGE_NAME (sym, name);
 
       /* Figure out where it lives.  */
       if (paramp->dfparam.regparam)
@@ -5096,12 +5093,14 @@ hpread_process_one_debug_symbol (union d
   struct symbol *sym;
   struct context_stack *new;
   char *class_scope_name;
+  char *set_name;
 
   /* Allocate one GDB debug symbol and fill in some default values. */
   sym = (struct symbol *) obstack_alloc (&objfile->objfile_obstack,
 					 sizeof (struct symbol));
   memset (sym, 0, sizeof (struct symbol));
-  DEPRECATED_SYMBOL_NAME (sym) = obsavestring (name, strlen (name), &objfile->objfile_obstack);
+  set_name = obsavestring (name, strlen (name), &objfile->objfile_obstack);
+  SYMBOL_SET_LINKAGE_NAME (sym, set_name);
   SYMBOL_LANGUAGE (sym) = language_auto;
   SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
   SYMBOL_LINE (sym) = 0;
@@ -5278,37 +5277,25 @@ hpread_process_one_debug_symbol (union d
       if ((dn_bufp->dfunc.language == HP_LANGUAGE_CPLUSPLUS) &&
 	  dn_bufp->dfunc.alias &&	/* has an alias */
 	  *(char *) (VT (objfile) + dn_bufp->dfunc.alias))	/* not a null string */
-	DEPRECATED_SYMBOL_NAME (sym) = VT (objfile) + dn_bufp->dfunc.alias;
+	set_name = VT (objfile) + dn_bufp->dfunc.alias;
       else
-	DEPRECATED_SYMBOL_NAME (sym) = VT (objfile) + dn_bufp->dfunc.name;
+	set_name = VT (objfile) + dn_bufp->dfunc.name;
 
       /* Special hack to get around HP compilers' insistence on
        * reporting "main" as "_MAIN_" for C/C++ */
-      if ((strcmp (DEPRECATED_SYMBOL_NAME (sym), "_MAIN_") == 0) &&
+      if ((strcmp (set_name, "_MAIN_") == 0) &&
 	  (strcmp (VT (objfile) + dn_bufp->dfunc.name, "main") == 0))
-	DEPRECATED_SYMBOL_NAME (sym) = VT (objfile) + dn_bufp->dfunc.name;
+	set_name = VT (objfile) + dn_bufp->dfunc.name;
 
-      /* The SYMBOL_CPLUS_DEMANGLED_NAME field is expected to
-       * be the demangled name.
-       */
+      SYMBOL_SET_NAMES (sym, set_name, strlen (set_name), objfile);
+#if 0
+      /* NOTE drow/2004-02-08: The following code is terribly bogus.  The
+	 demangler should be fixed instead.  */
       if (dn_bufp->dfunc.language == HP_LANGUAGE_CPLUSPLUS)
 	{
-	  /* SYMBOL_INIT_DEMANGLED_NAME is a macro which winds up
-	   * calling the demangler in libiberty (cplus_demangle()) to
-	   * do the job. This generally does the job, even though
-	   * it's intended for the GNU compiler and not the aCC compiler
-	   * Note that SYMBOL_INIT_DEMANGLED_NAME calls the
-	   * demangler with arguments DMGL_PARAMS | DMGL_ANSI.
-	   * Generally, we don't want params when we display
-	   * a demangled name, but when I took out the DMGL_PARAMS,
-	   * some things broke, so I'm leaving it in here, and
-	   * working around the issue in stack.c. - RT
-	   */
-	  SYMBOL_INIT_DEMANGLED_NAME (sym, &objfile->objfile_obstack);
-	  if ((DEPRECATED_SYMBOL_NAME (sym) == VT (objfile) + dn_bufp->dfunc.alias) &&
-	      (!SYMBOL_CPLUS_DEMANGLED_NAME (sym)))
+	  if (set_name == VT (objfile) + dn_bufp->dfunc.alias
+	      && !SYMBOL_CPLUS_DEMANGLED_NAME (sym))
 	    {
-
 	      /* Well, the symbol name is mangled, but the
 	       * demangler in libiberty failed so the demangled
 	       * field is still NULL. Try to
@@ -5334,6 +5321,7 @@ hpread_process_one_debug_symbol (union d
 		}
 	    }
 	}
+#endif
 
       /* Add the function symbol to the list of symbols in this blockvector */
       if (dn_bufp->dfunc.global)
@@ -5396,36 +5384,25 @@ hpread_process_one_debug_symbol (union d
       if ((dn_bufp->ddocfunc.language == HP_LANGUAGE_CPLUSPLUS) &&
 	  dn_bufp->ddocfunc.alias &&	/* has an alias */
 	  *(char *) (VT (objfile) + dn_bufp->ddocfunc.alias))	/* not a null string */
-	DEPRECATED_SYMBOL_NAME (sym) = VT (objfile) + dn_bufp->ddocfunc.alias;
+	set_name = VT (objfile) + dn_bufp->ddocfunc.alias;
       else
-	DEPRECATED_SYMBOL_NAME (sym) = VT (objfile) + dn_bufp->ddocfunc.name;
+	set_name = VT (objfile) + dn_bufp->ddocfunc.name;
 
       /* Special hack to get around HP compilers' insistence on
        * reporting "main" as "_MAIN_" for C/C++ */
       if ((strcmp (DEPRECATED_SYMBOL_NAME (sym), "_MAIN_") == 0) &&
 	  (strcmp (VT (objfile) + dn_bufp->ddocfunc.name, "main") == 0))
-	DEPRECATED_SYMBOL_NAME (sym) = VT (objfile) + dn_bufp->ddocfunc.name;
+	set_name = VT (objfile) + dn_bufp->ddocfunc.name;
 
+      SYMBOL_SET_NAMES (sym, set_name, strlen (set_name), objfile);
+#if 0
+      /* NOTE drow/2004-02-08: The following code is terribly bogus.  The
+	 demangler should be fixed instead.  */
       if (dn_bufp->ddocfunc.language == HP_LANGUAGE_CPLUSPLUS)
 	{
-
-	  /* SYMBOL_INIT_DEMANGLED_NAME is a macro which winds up
-	   * calling the demangler in libiberty (cplus_demangle()) to
-	   * do the job. This generally does the job, even though
-	   * it's intended for the GNU compiler and not the aCC compiler
-	   * Note that SYMBOL_INIT_DEMANGLED_NAME calls the
-	   * demangler with arguments DMGL_PARAMS | DMGL_ANSI.
-	   * Generally, we don't want params when we display
-	   * a demangled name, but when I took out the DMGL_PARAMS,
-	   * some things broke, so I'm leaving it in here, and
-	   * working around the issue in stack.c. - RT 
-	   */
-	  SYMBOL_INIT_DEMANGLED_NAME (sym, &objfile->objfile_obstack);
-
-	  if ((DEPRECATED_SYMBOL_NAME (sym) == VT (objfile) + dn_bufp->ddocfunc.alias) &&
-	      (!SYMBOL_CPLUS_DEMANGLED_NAME (sym)))
+	  if (set_name == VT (objfile) + dn_bufp->ddocfunc.alias
+	      && !SYMBOL_CPLUS_DEMANGLED_NAME (sym))
 	    {
-
 	      /* Well, the symbol name is mangled, but the
 	       * demangler in libiberty failed so the demangled
 	       * field is still NULL. Try to
@@ -5451,6 +5428,7 @@ hpread_process_one_debug_symbol (union d
 		}
 	    }
 	}
+#endif
 
       /* Add the function symbol to the list of symbols in this blockvector */
       if (dn_bufp->ddocfunc.global)
@@ -5889,7 +5867,7 @@ hpread_process_one_debug_symbol (union d
 	    newsym = (struct symbol *) obstack_alloc (&objfile->objfile_obstack,
 						    sizeof (struct symbol));
 	    memset (newsym, 0, sizeof (struct symbol));
-	    DEPRECATED_SYMBOL_NAME (newsym) = name;
+	    SYMBOL_SET_LINKAGE_NAME (newsym, name);
 	    SYMBOL_LANGUAGE (newsym) = language_auto;
 	    SYMBOL_DOMAIN (newsym) = VAR_DOMAIN;
 	    SYMBOL_LINE (newsym) = 0;
Index: jv-lang.c
===================================================================
RCS file: /cvs/src/src/gdb/jv-lang.c,v
retrieving revision 1.29
diff -u -p -r1.29 jv-lang.c
--- jv-lang.c	7 Feb 2004 23:13:47 -0000	1.29
+++ jv-lang.c	15 Feb 2004 23:56:30 -0000
@@ -142,7 +142,7 @@ add_class_symbol (struct type *type, COR
     obstack_alloc (&dynamics_objfile->objfile_obstack, sizeof (struct symbol));
   memset (sym, 0, sizeof (struct symbol));
   SYMBOL_LANGUAGE (sym) = language_java;
-  DEPRECATED_SYMBOL_NAME (sym) = TYPE_TAG_NAME (type);
+  SYMBOL_SET_LINKAGE_NAME (sym, TYPE_TAG_NAME (type));
   SYMBOL_CLASS (sym) = LOC_TYPEDEF;
   /*  SYMBOL_VALUE (sym) = valu; */
   SYMBOL_TYPE (sym) = type;
Index: objfiles.c
===================================================================
RCS file: /cvs/src/src/gdb/objfiles.c,v
retrieving revision 1.49
diff -u -p -r1.49 objfiles.c
--- objfiles.c	14 Feb 2004 15:46:33 -0000	1.49
+++ objfiles.c	15 Feb 2004 23:56:31 -0000
@@ -283,11 +283,6 @@ terminate_minimal_symbol_table (struct o
       = &objfile->msymbols[objfile->minimal_symbol_count];
 
     memset (m, 0, sizeof (*m));
-    DEPRECATED_SYMBOL_NAME (m) = NULL;
-    SYMBOL_VALUE_ADDRESS (m) = 0;
-    MSYMBOL_INFO (m) = NULL;
-    MSYMBOL_SIZE (m) = 0;
-    MSYMBOL_TYPE (m) = mst_unknown;
     SYMBOL_INIT_LANGUAGE_SPECIFIC (m, language_unknown);
   }
 }
Index: stabsread.c
===================================================================
RCS file: /cvs/src/src/gdb/stabsread.c,v
retrieving revision 1.74
diff -u -p -r1.74 stabsread.c
--- stabsread.c	7 Feb 2004 23:13:47 -0000	1.74
+++ stabsread.c	15 Feb 2004 23:56:34 -0000
@@ -367,6 +367,8 @@ patch_block_stabs (struct pending *symbo
 	  sym = find_symbol_in_list (symbols, name, pp - name);
 	  if (!sym)
 	    {
+	      char *sym_name;
+
 	      /* FIXME-maybe: it would be nice if we noticed whether
 	         the variable was defined *anywhere*, not just whether
 	         it is defined in this compilation unit.  But neither
@@ -385,8 +387,9 @@ patch_block_stabs (struct pending *symbo
 	      memset (sym, 0, sizeof (struct symbol));
 	      SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
 	      SYMBOL_CLASS (sym) = LOC_OPTIMIZED_OUT;
-	      DEPRECATED_SYMBOL_NAME (sym) =
-		obsavestring (name, pp - name, &objfile->objfile_obstack);
+	      sym_name = obsavestring (name, pp - name,
+				       &objfile->objfile_obstack);
+	      SYMBOL_SET_LINKAGE_NAME (sym, sym_name);
 	      pp += 2;
 	      if (*(pp - 1) == 'F' || *(pp - 1) == 'f')
 		{
@@ -641,12 +644,15 @@ define_symbol (CORE_ADDR valu, char *str
 
   if (is_cplus_marker (string[0]))
     {
+      char *sym_name;
+
       /* Special GNU C++ names.  */
       switch (string[1])
 	{
 	case 't':
-	  DEPRECATED_SYMBOL_NAME (sym) = obsavestring ("this", strlen ("this"),
-					    &objfile->objfile_obstack);
+	  sym_name = obsavestring ("this", strlen ("this"),
+				   &objfile->objfile_obstack);
+	  SYMBOL_SET_LINKAGE_NAME (sym, sym_name);
 	  break;
 
 	case 'v':		/* $vtbl_ptr_type */
@@ -654,8 +660,9 @@ define_symbol (CORE_ADDR valu, char *str
 	  goto normal;
 
 	case 'e':
-	  DEPRECATED_SYMBOL_NAME (sym) = obsavestring ("eh_throw", strlen ("eh_throw"),
-					    &objfile->objfile_obstack);
+	  sym_name = obsavestring ("eh_throw", strlen ("eh_throw"),
+				   &objfile->objfile_obstack);
+	  SYMBOL_SET_LINKAGE_NAME (sym, sym_name);
 	  break;
 
 	case '_':
@@ -1130,13 +1137,15 @@ define_symbol (CORE_ADDR valu, char *str
       SYMBOL_CLASS (sym) = LOC_STATIC;
       SYMBOL_VALUE_ADDRESS (sym) = valu;
 #ifdef STATIC_TRANSFORM_NAME
-      if (IS_STATIC_TRANSFORM_NAME (DEPRECATED_SYMBOL_NAME (sym)))
+      if (IS_STATIC_TRANSFORM_NAME (SYMBOL_LINKAGE_NAME (sym)))
 	{
 	  struct minimal_symbol *msym;
-	  msym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (sym), NULL, objfile);
+	  msym = lookup_minimal_symbol (SYMBOL_LINKAGE_NAME (sym), NULL, objfile);
 	  if (msym != NULL)
 	    {
-	      DEPRECATED_SYMBOL_NAME (sym) = STATIC_TRANSFORM_NAME (DEPRECATED_SYMBOL_NAME (sym));
+	      char *sym_name
+		= STATIC_TRANSFORM_NAME (SYMBOL_LINKAGE_NAME (sym));
+	      SYMBOL_SET_LINKAGE_NAME (sym, sym_name);
 	      SYMBOL_VALUE_ADDRESS (sym) = SYMBOL_VALUE_ADDRESS (msym);
 	    }
 	}
@@ -1276,13 +1285,16 @@ define_symbol (CORE_ADDR valu, char *str
       SYMBOL_CLASS (sym) = LOC_STATIC;
       SYMBOL_VALUE_ADDRESS (sym) = valu;
 #ifdef STATIC_TRANSFORM_NAME
-      if (IS_STATIC_TRANSFORM_NAME (DEPRECATED_SYMBOL_NAME (sym)))
+	}
+      if (IS_STATIC_TRANSFORM_NAME (SYMBOL_LINKAGE_NAME (sym)))
 	{
 	  struct minimal_symbol *msym;
-	  msym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (sym), NULL, objfile);
+	  msym = lookup_minimal_symbol (SYMBOL_LINKAGE_NAME (sym), NULL, objfile);
 	  if (msym != NULL)
 	    {
-	      DEPRECATED_SYMBOL_NAME (sym) = STATIC_TRANSFORM_NAME (DEPRECATED_SYMBOL_NAME (sym));
+	      char *sym_name
+		= STATIC_TRANSFORM_NAME (SYMBOL_LINKAGE_NAME (sym));
+	      SYMBOL_SET_LINKAGE_NAME (sym, sym_name);
 	      SYMBOL_VALUE_ADDRESS (sym) = SYMBOL_VALUE_ADDRESS (msym);
 	    }
 	}
@@ -3493,7 +3505,7 @@ read_enum_type (char **pp, struct type *
       sym = (struct symbol *)
 	obstack_alloc (&objfile->objfile_obstack, sizeof (struct symbol));
       memset (sym, 0, sizeof (struct symbol));
-      DEPRECATED_SYMBOL_NAME (sym) = name;
+      SYMBOL_SET_LINKAGE_NAME (sym, name);
       SYMBOL_LANGUAGE (sym) = current_subfile->language;
       SYMBOL_CLASS (sym) = LOC_CONST;
       SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
@@ -4068,7 +4080,7 @@ common_block_end (struct objfile *objfil
     obstack_alloc (&objfile->objfile_obstack, sizeof (struct symbol));
   memset (sym, 0, sizeof (struct symbol));
   /* Note: common_block_name already saved on objfile_obstack */
-  DEPRECATED_SYMBOL_NAME (sym) = common_block_name;
+  SYMBOL_SET_LINKAGE_NAME (sym, common_block_name);
   SYMBOL_CLASS (sym) = LOC_BLOCK;
 
   /* Now we copy all the symbols which have been defined since the BCOMM.  */
Index: symfile.c
===================================================================
RCS file: /cvs/src/src/gdb/symfile.c,v
retrieving revision 1.123
diff -u -p -r1.123 symfile.c
--- symfile.c	15 Feb 2004 15:16:29 -0000	1.123
+++ symfile.c	15 Feb 2004 23:56:36 -0000
@@ -2611,75 +2611,6 @@ add_psymbol_to_list (char *name, int nam
   return psym;
 }
 
-/* Add a symbol with a long value to a psymtab. This differs from
- * add_psymbol_to_list above in taking both a mangled and a demangled
- * name. */
-
-void
-add_psymbol_with_dem_name_to_list (char *name, int namelength, char *dem_name,
-				   int dem_namelength, domain_enum domain,
-				   enum address_class class,
-				   struct psymbol_allocation_list *list, long val,	/* Value as a long */
-				   CORE_ADDR coreaddr,	/* Value as a CORE_ADDR */
-				   enum language language,
-				   struct objfile *objfile)
-{
-  struct partial_symbol *psym;
-  char *buf = alloca (namelength + 1);
-  /* psymbol is static so that there will be no uninitialized gaps in the
-     structure which might contain random data, causing cache misses in
-     bcache. */
-  static struct partial_symbol psymbol;
-
-  /* Create local copy of the partial symbol */
-
-  memcpy (buf, name, namelength);
-  buf[namelength] = '\0';
-  DEPRECATED_SYMBOL_NAME (&psymbol) = deprecated_bcache (buf, namelength + 1,
-							 objfile->psymbol_cache);
-
-  buf = alloca (dem_namelength + 1);
-  memcpy (buf, dem_name, dem_namelength);
-  buf[dem_namelength] = '\0';
-
-  switch (language)
-    {
-    case language_c:
-    case language_cplus:
-      SYMBOL_CPLUS_DEMANGLED_NAME (&psymbol) =
-	deprecated_bcache (buf, dem_namelength + 1, objfile->psymbol_cache);
-      break;
-      /* FIXME What should be done for the default case? Ignoring for now. */
-    }
-
-  /* val and coreaddr are mutually exclusive, one of them *will* be zero */
-  if (val != 0)
-    {
-      SYMBOL_VALUE (&psymbol) = val;
-    }
-  else
-    {
-      SYMBOL_VALUE_ADDRESS (&psymbol) = coreaddr;
-    }
-  SYMBOL_SECTION (&psymbol) = 0;
-  SYMBOL_LANGUAGE (&psymbol) = language;
-  PSYMBOL_DOMAIN (&psymbol) = domain;
-  PSYMBOL_CLASS (&psymbol) = class;
-  SYMBOL_INIT_LANGUAGE_SPECIFIC (&psymbol, language);
-
-  /* Stash the partial symbol away in the cache */
-  psym = deprecated_bcache (&psymbol, sizeof (struct partial_symbol),
-			    objfile->psymbol_cache);
-
-  /* Save pointer to partial symbol in psymtab, growing symtab if needed. */
-  if (list->next >= list->list + list->size)
-    {
-      extend_psymbol_list (list, objfile);
-    }
-  *list->next++ = psym;
-  OBJSTAT (objfile, n_psyms++);
-}
-
 /* Initialize storage for partial symbols.  */
 
 void
Index: symfile.h
===================================================================
RCS file: /cvs/src/src/gdb/symfile.h,v
retrieving revision 1.27
diff -u -p -r1.27 symfile.h
--- symfile.h	14 Feb 2004 15:46:33 -0000	1.27
+++ symfile.h	15 Feb 2004 23:56:36 -0000
@@ -159,15 +159,6 @@ struct partial_symbol *add_psymbol_to_li
 					    long, CORE_ADDR,
 					    enum language, struct objfile *);
 
-extern void add_psymbol_with_dem_name_to_list (char *, int, char *, int,
-					       domain_enum,
-					       enum address_class,
-					       struct psymbol_allocation_list
-					       *, long, CORE_ADDR,
-					       enum language,
-					       struct objfile *);
-
-
 extern void init_psymbol_list (struct objfile *, int);
 
 extern void sort_pst_symbols (struct partial_symtab *);
Index: symtab.h
===================================================================
RCS file: /cvs/src/src/gdb/symtab.h,v
retrieving revision 1.87
diff -u -p -r1.87 symtab.h
--- symtab.h	7 Feb 2004 23:13:47 -0000	1.87
+++ symtab.h	15 Feb 2004 23:56:37 -0000
@@ -195,6 +195,11 @@ extern void symbol_set_names (struct gen
 			      const char *linkage_name, int len,
 			      struct objfile *objfile);
 
+#define SYMBOL_SET_LINKAGE_NAME(symbol,linkage_name)		\
+  do {								\
+    (symbol)->ginfo.name = (linkage_name);			\
+  } while (0)
+
 /* Now come lots of name accessor macros.  Short version as to when to
    use which: Use SYMBOL_NATURAL_NAME to refer to the name of the
    symbol in the original source code.  Use SYMBOL_LINKAGE_NAME if you
Index: xcoffread.c
===================================================================
RCS file: /cvs/src/src/gdb/xcoffread.c,v
retrieving revision 1.40
diff -u -p -r1.40 xcoffread.c
--- xcoffread.c	14 Feb 2004 15:46:33 -0000	1.40
+++ xcoffread.c	15 Feb 2004 23:56:38 -0000
@@ -1477,7 +1477,8 @@ process_xcoff_symbol (struct coff_symbol
          will be patched with the type from its stab entry later on in
          patch_block_stabs (), unless the file was compiled without -g.  */
 
-      DEPRECATED_SYMBOL_NAME (sym) = SYMNAME_ALLOC (name, symname_alloced);
+      SYMBOL_SET_LINKAGE_NAME (sym,
+			       SYMNAME_ALLOC (name, symname_alloced));
       SYMBOL_TYPE (sym) = func_symbol_type;
 
       SYMBOL_CLASS (sym) = LOC_BLOCK;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]