2002-10-23 Elena Zannoni <ezannoni@redhat.com>

* symtab.c (symbol_init_language_specific): New function.
	* symtab.h (SYMBOL_INIT_LANGUAGE_SPECIFIC): Simplify macro, by
	turning most of it into a function.
	(symbol_init_language_specific): Export.
This commit is contained in:
Elena Zannoni 2002-10-23 18:16:44 +00:00
parent d9fa45febb
commit 89aad1f99e
3 changed files with 39 additions and 25 deletions

View File

@ -1,3 +1,10 @@
2002-10-23 Elena Zannoni <ezannoni@redhat.com>
* symtab.c (symbol_init_language_specific): New function.
* symtab.h (SYMBOL_INIT_LANGUAGE_SPECIFIC): Simplify macro, by
turning most of it into a function.
(symbol_init_language_specific): Export.
2002-10-23 David Carlton <carlton@math.stanford.edu>
* dwarf2read.c (dwarf_tag_name): Add DWARF 3 names.

View File

@ -385,6 +385,33 @@ gdb_mangle_name (struct type *type, int method_id, int signature_id)
}
/* Initialize the language dependent portion of a symbol
depending upon the language for the symbol. */
void
symbol_init_language_specific (struct general_symbol_info *gsymbol,
enum language language)
{
gsymbol->language = language;
if (gsymbol->language == language_cplus
|| gsymbol->language == language_java)
{
gsymbol->language_specific.cplus_specific.demangled_name = NULL;
}
else if (gsymbol->language == language_objc)
{
gsymbol->language_specific.objc_specific.demangled_name = NULL;
}
/* OBSOLETE else if (SYMBOL_LANGUAGE (symbol) == language_chill) */
/* OBSOLETE { */
/* OBSOLETE SYMBOL_CHILL_DEMANGLED_NAME (symbol) = NULL; */
/* OBSOLETE } */
else
{
memset (&gsymbol->language_specific, 0,
sizeof (gsymbol->language_specific));
}
}
/* Initialize a symbol's mangled name. */
/* Try to initialize the demangled name for a symbol, based on the

View File

@ -139,32 +139,12 @@ extern CORE_ADDR symbol_overlayed_address (CORE_ADDR, asection *);
#define SYMBOL_CPLUS_DEMANGLED_NAME(symbol) \
(symbol)->ginfo.language_specific.cplus_specific.demangled_name
/* Macro that initializes the language dependent portion of a symbol
/* Initializes the language dependent portion of a symbol
depending upon the language for the symbol. */
#define SYMBOL_INIT_LANGUAGE_SPECIFIC(symbol,language) \
do { \
SYMBOL_LANGUAGE (symbol) = language; \
if (SYMBOL_LANGUAGE (symbol) == language_cplus \
|| SYMBOL_LANGUAGE (symbol) == language_java \
) \
{ \
SYMBOL_CPLUS_DEMANGLED_NAME (symbol) = NULL; \
} \
else if (SYMBOL_LANGUAGE (symbol) == language_objc) \
{ \
SYMBOL_OBJC_DEMANGLED_NAME (symbol) = NULL; \
} \
/* OBSOLETE else if (SYMBOL_LANGUAGE (symbol) == language_chill) */ \
/* OBSOLETE { */ \
/* OBSOLETE SYMBOL_CHILL_DEMANGLED_NAME (symbol) = NULL; */ \
/* OBSOLETE } */ \
else \
{ \
memset (&(symbol)->ginfo.language_specific, 0, \
sizeof ((symbol)->ginfo.language_specific)); \
} \
} while (0)
#define SYMBOL_INIT_LANGUAGE_SPECIFIC(symbol,language) \
(symbol_init_language_specific (&(symbol)->ginfo, (language)))
extern void symbol_init_language_specific (struct general_symbol_info *symbol,
enum language language);
#define SYMBOL_INIT_DEMANGLED_NAME(symbol,obstack) \
(symbol_init_demangled_name (&symbol->ginfo, (obstack)))