aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElena Zannoni <ezannoni@kwikemart.cygnus.com>2002-10-23 20:09:28 +0000
committerElena Zannoni <ezannoni@kwikemart.cygnus.com>2002-10-23 20:09:28 +0000
commit9cc0d196fc91bea770f668eed89fe80f167e21c6 (patch)
treed89b45278626254355f34b2163d6fdb58188fcd1
parent19de93d0c62cd26498869d1eecd6299dcf476365 (diff)
downloadgdb-9cc0d196fc91bea770f668eed89fe80f167e21c6.zip
gdb-9cc0d196fc91bea770f668eed89fe80f167e21c6.tar.gz
gdb-9cc0d196fc91bea770f668eed89fe80f167e21c6.tar.bz2
2002-10-23 Elena Zannoni <ezannoni@redhat.com>
* 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.
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/symtab.c17
-rw-r--r--gdb/symtab.h18
3 files changed, 29 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e922e58..33ab94a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2002-10-23 Elena Zannoni <ezannoni@redhat.com>
+
+ * 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 <msnyder@redhat.com>
* valops.c (value_of_local): Restore quotes in error message.
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 7b70aa7..3ae4f2a 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 3863747..941a7f1 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 */