diff options
Diffstat (limited to 'gdb/cp-support.h')
-rw-r--r-- | gdb/cp-support.h | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/gdb/cp-support.h b/gdb/cp-support.h index d23f19ed0e7..51f808f80ef 100644 --- a/gdb/cp-support.h +++ b/gdb/cp-support.h @@ -26,13 +26,12 @@ /* We need this for 'domain_enum', alas... */ #include "symtab.h" - #include "vec.h" +#include "gdb_obstack.h" /* Opaque declarations. */ struct symbol; -struct obstack; struct block; struct objfile; struct type; @@ -46,6 +45,20 @@ struct demangle_component; #define CP_ANONYMOUS_NAMESPACE_LEN 21 +/* The result of parsing a name. */ + +struct demangle_parse_info +{ + /* The memory used during the parse. */ + struct demangle_info *info; + + /* The result of the parse. */ + struct demangle_component *tree; + + /* Any temporary memory used during typedef replacement. */ + struct obstack obstack; +}; + /* This struct is designed to store data from using directives. It says that names from namespace IMPORT_SRC should be visible within namespace IMPORT_DEST. These form a linked list; NEXT is the next @@ -134,6 +147,8 @@ struct using_direct extern char *cp_canonicalize_string (const char *string); +extern char *cp_canonicalize_string_no_typedefs (const char *string); + extern char *cp_class_name_from_physname (const char *physname); extern char *method_name_from_physname (const char *physname); @@ -214,12 +229,21 @@ struct type *cp_lookup_transparent_type (const char *name); /* Functions from cp-name-parser.y. */ -extern struct demangle_component *cp_demangled_name_to_comp - (const char *demangled_name, const char **errmsg); +extern struct demangle_parse_info *cp_demangled_name_to_comp + (const char *demangled_name, const char **errmsg); extern char *cp_comp_to_string (struct demangle_component *result, int estimated_len); +extern void cp_demangled_name_parse_free (struct demangle_parse_info *); +extern struct cleanup *make_cleanup_cp_demangled_name_parse_free + (struct demangle_parse_info *); +extern void cp_merge_demangle_parse_infos (struct demangle_parse_info *, + struct demangle_component *, + struct demangle_parse_info *); + +extern struct demangle_parse_info *cp_new_demangle_parse_info (void); + /* The list of "maint cplus" commands. */ extern struct cmd_list_element *maint_cplus_cmd_list; |