This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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 */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]