New objc_specific struct.
authorAdam Fedor <fedor@gnu.org>
Tue, 15 Oct 2002 02:50:56 +0000 (02:50 +0000)
committerAdam Fedor <fedor@gnu.org>
Tue, 15 Oct 2002 02:50:56 +0000 (02:50 +0000)
(SYMBOL_INIT_LANGUAGE_SPECIFIC): Handle ObjC.
(SYMBOL_DEMANGLED_NAME): Likewise.

gdb/ChangeLog
gdb/symtab.h

index e29e038..6e25cc3 100644 (file)
@@ -1,5 +1,11 @@
 2002-10-14  Adam Fedor  <fedor@gnu.org>
 
+       * symtab.h: New objc_specific struct.
+       (SYMBOL_INIT_LANGUAGE_SPECIFIC): Handle ObjC.
+       (SYMBOL_DEMANGLED_NAME): Likewise.
+
+2002-10-14  Adam Fedor  <fedor@gnu.org>
+
        * symfile.c (init_filename_language_table): Add ObjC file extension.
 
 2002-10-14  Adam Fedor  <fedor@gnu.org>
index a78607d..a76a0eb 100644 (file)
@@ -89,6 +89,11 @@ struct general_symbol_info
       char *demangled_name;
     }
     cplus_specific;
+    struct objc_specific
+    {
+      char *demangled_name;
+    }
+    objc_specific;
 #if 0
 /* OBSOLETE struct chill_specific        *//* For Chill */
     /* OBSOLETE   { */
@@ -146,6 +151,10 @@ extern CORE_ADDR symbol_overlayed_address (CORE_ADDR, asection *);
       {                                                                        \
        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; */    \
@@ -170,13 +179,18 @@ extern void symbol_init_demangled_name (struct general_symbol_info *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)
+        NULL))
 
 /* OBSOLETE #define SYMBOL_CHILL_DEMANGLED_NAME(symbol) */
 /* OBSOLETE (symbol)->ginfo.language_specific.chill_specific.demangled_name */
 
+#define SYMBOL_OBJC_DEMANGLED_NAME(symbol)                             \
+   (symbol)->ginfo.language_specific.objc_specific.demangled_name
+
 /* Macro that returns the "natural source name" of a symbol.  In C++ this is
    the "demangled" form of the name if demangle is on and the "mangled" form
    of the name if demangle is off.  In other languages this is just the