diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 98883694a5..f9c814851e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2014-12-02 Doug Evans + + * symtab.c (symbol_init_cplus_specific): Delete. + (symbol_set_demangled_name): Remove special c++ support. + (symbol_get_demangled_name, symbol_set_language): Ditto. + * symtab.h (struct cplus_specific): Delete. + (struct general_symbol_info) : Remove + cplus_specific. + 2014-12-02 Doug Evans PR symtab/17602 diff --git a/gdb/symtab.c b/gdb/symtab.c index 345c20de16..a52f7c0117 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -473,40 +473,15 @@ gdb_mangle_name (struct type *type, int method_id, int signature_id) return (mangled_name); } -/* Initialize the cplus_specific structure. 'cplus_specific' should - only be allocated for use with cplus symbols. */ - -static void -symbol_init_cplus_specific (struct general_symbol_info *gsymbol, - struct obstack *obstack) -{ - /* A language_specific structure should not have been previously - initialized. */ - gdb_assert (gsymbol->language_specific.cplus_specific == NULL); - gdb_assert (obstack != NULL); - - gsymbol->language_specific.cplus_specific = - OBSTACK_ZALLOC (obstack, struct cplus_specific); -} - /* Set the demangled name of GSYMBOL to NAME. NAME must be already - correctly allocated. For C++ symbols a cplus_specific struct is - allocated so OBJFILE must not be NULL. If this is a non C++ symbol - OBJFILE can be NULL. */ + correctly allocated. */ void symbol_set_demangled_name (struct general_symbol_info *gsymbol, const char *name, struct obstack *obstack) { - if (gsymbol->language == language_cplus) - { - if (gsymbol->language_specific.cplus_specific == NULL) - symbol_init_cplus_specific (gsymbol, obstack); - - gsymbol->language_specific.cplus_specific->demangled_name = name; - } - else if (gsymbol->language == language_ada) + if (gsymbol->language == language_ada) { if (name == NULL) { @@ -528,14 +503,7 @@ symbol_set_demangled_name (struct general_symbol_info *gsymbol, const char * symbol_get_demangled_name (const struct general_symbol_info *gsymbol) { - if (gsymbol->language == language_cplus) - { - if (gsymbol->language_specific.cplus_specific != NULL) - return gsymbol->language_specific.cplus_specific->demangled_name; - else - return NULL; - } - else if (gsymbol->language == language_ada) + if (gsymbol->language == language_ada) { if (!gsymbol->ada_mangled) return NULL; @@ -555,7 +523,8 @@ symbol_set_language (struct general_symbol_info *gsymbol, struct obstack *obstack) { gsymbol->language = language; - if (gsymbol->language == language_d + if (gsymbol->language == language_cplus + || gsymbol->language == language_d || gsymbol->language == language_go || gsymbol->language == language_java || gsymbol->language == language_objc @@ -568,8 +537,6 @@ symbol_set_language (struct general_symbol_info *gsymbol, gdb_assert (gsymbol->ada_mangled == 0); gsymbol->language_specific.obstack = obstack; } - else if (gsymbol->language == language_cplus) - gsymbol->language_specific.cplus_specific = NULL; else { memset (&gsymbol->language_specific, 0, diff --git a/gdb/symtab.h b/gdb/symtab.h index 473c85cc88..57d234da94 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -80,13 +80,6 @@ struct common_block; --chastain 2003-08-21 */ -/* Struct for storing C++ specific information. Allocated when needed. */ - -struct cplus_specific -{ - const char *demangled_name; -}; - /* Define a structure for the information that is common to all symbol types, including minimal symbols, partial symbols, and full symbols. In a multilanguage environment, some language specific information may need to @@ -141,14 +134,12 @@ struct general_symbol_info struct obstack *obstack; /* This is used by languages which wish to store a demangled name. - currently used by Ada, Java, and Objective C. */ + currently used by Ada, C++, Java, and Objective C. */ struct mangled_lang { const char *demangled_name; } mangled_lang; - - struct cplus_specific *cplus_specific; } language_specific;