From 89aad1f99e80e605e01a69d74e13263b1841d361 Mon Sep 17 00:00:00 2001 From: Elena Zannoni Date: Wed, 23 Oct 2002 18:16:44 +0000 Subject: [PATCH] 2002-10-23 Elena Zannoni * 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. --- gdb/ChangeLog | 7 +++++++ gdb/symtab.c | 27 +++++++++++++++++++++++++++ gdb/symtab.h | 30 +++++------------------------- 3 files changed, 39 insertions(+), 25 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index bb555e18117..c922b3b106d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2002-10-23 Elena Zannoni + + * 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 * dwarf2read.c (dwarf_tag_name): Add DWARF 3 names. diff --git a/gdb/symtab.c b/gdb/symtab.c index a4322926e2f..7b70aa7d13c 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -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 diff --git a/gdb/symtab.h b/gdb/symtab.h index b84cac69ced..38637475c04 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -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))) -- 2.30.2