This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH] 'nother macro gone
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Wed, 23 Oct 2002 16:07:08 -0400
- Subject: [PATCH] 'nother macro gone
Again..., well, not quite gone, but close enough.
Elena
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.
Index: symtab.c
===================================================================
RCS file: /cvs/uberbaum/gdb/symtab.c,v
retrieving revision 1.71
diff -u -p -r1.71 symtab.c
--- symtab.c 23 Oct 2002 18:16:44 -0000 1.71
+++ symtab.c 23 Oct 2002 20:01:45 -0000
@@ -488,7 +488,24 @@ symbol_init_demangled_name (struct gener
#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) */
+}
Index: symtab.h
===================================================================
RCS file: /cvs/uberbaum/gdb/symtab.h,v
retrieving revision 1.47
diff -u -p -r1.47 symtab.h
--- symtab.h 23 Oct 2002 18:16:44 -0000 1.47
+++ symtab.h 23 Oct 2002 20:03:20 -0000
@@ -152,18 +152,11 @@ extern void symbol_init_demangled_name (
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 */