From 9cc0d196fc91bea770f668eed89fe80f167e21c6 Mon Sep 17 00:00:00 2001 From: Elena Zannoni Date: Wed, 23 Oct 2002 20:09:28 +0000 Subject: [PATCH] 2002-10-23 Elena Zannoni * symtab.c (symbol_demangled_name): New function. * symtab.h (SYMBOL_DEMANGLED_NAME): Simplify macro, by turning most of it into a function. (symbol_demangled_name): Export. --- gdb/ChangeLog | 7 +++++++ gdb/symtab.c | 17 +++++++++++++++++ gdb/symtab.h | 18 +++++------------- 3 files changed, 29 insertions(+), 13 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e922e583129..33ab94afa0d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2002-10-23 Elena Zannoni + + * symtab.c (symbol_demangled_name): New function. + * symtab.h (SYMBOL_DEMANGLED_NAME): Simplify macro, by + turning most of it into a function. + (symbol_demangled_name): Export. + 2002-10-23 Michael Snyder * valops.c (value_of_local): Restore quotes in error message. diff --git a/gdb/symtab.c b/gdb/symtab.c index 7b70aa7d13c..3ae4f2a1311 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -488,7 +488,24 @@ symbol_init_demangled_name (struct general_symbol_info *gsymbol, #endif } +/* Return the demangled name for a symbol based on the language for + that symbol. If no demangled name exists, return NULL. */ +char * +symbol_demangled_name (struct general_symbol_info *gsymbol) +{ + if (gsymbol->language == language_cplus + || gsymbol->language == language_java) + return gsymbol->language_specific.cplus_specific.demangled_name; + else if (gsymbol->language == language_objc) + return gsymbol->language_specific.objc_specific.demangled_name; + + else + return NULL; + + /* OBSOLETE (SYMBOL_LANGUAGE (symbol) == language_chill */ + /* OBSOLETE ? SYMBOL_CHILL_DEMANGLED_NAME (symbol) */ +} diff --git a/gdb/symtab.h b/gdb/symtab.h index 38637475c04..941a7f12ad2 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -151,19 +151,11 @@ extern void symbol_init_language_specific (struct general_symbol_info *symbol, extern void symbol_init_demangled_name (struct general_symbol_info *symbol, struct obstack *obstack); - -/* Macro that returns the demangled name for a symbol based on the language - for that symbol. If no demangled name exists, returns NULL. */ - -#define SYMBOL_DEMANGLED_NAME(symbol) \ - (SYMBOL_LANGUAGE (symbol) == language_cplus \ - || SYMBOL_LANGUAGE (symbol) == language_java \ - ? SYMBOL_CPLUS_DEMANGLED_NAME (symbol) \ - : (SYMBOL_LANGUAGE (symbol) == language_objc \ - ? SYMBOL_OBJC_DEMANGLED_NAME (symbol) \ - : /* OBSOLETE (SYMBOL_LANGUAGE (symbol) == language_chill */ \ - /* OBSOLETE ? SYMBOL_CHILL_DEMANGLED_NAME (symbol) */ \ - NULL)) +/* Return the demangled name for a symbol based on the language for + that symbol. If no demangled name exists, return NULL. */ +#define SYMBOL_DEMANGLED_NAME(symbol) \ + (symbol_demangled_name (&(symbol)->ginfo)) +extern char *symbol_demangled_name (struct general_symbol_info *symbol); /* OBSOLETE #define SYMBOL_CHILL_DEMANGLED_NAME(symbol) */ /* OBSOLETE (symbol)->ginfo.language_specific.chill_specific.demangled_name */ -- 2.30.2