#include "safe-ctype.h"#include <sys/types.h>#include <string.h>#include <stdio.h>#include <demangle.h>#include "libiberty.h"

Go to the source code of this file.
Data Types | |
| type | string |
| type | work_stuff |
| type | optable |
Defines | |
| #define | CURRENT_DEMANGLING_STYLE work->options |
| #define | min(X, Y) (((X) < (Y)) ? (X) : (Y)) |
| #define | INTBUF_SIZE 32 |
| #define | CPLUS_MARKER '$' |
| #define | PRINT_ANSI_QUALIFIERS (work -> options & DMGL_ANSI) |
| #define | PRINT_ARG_TYPES (work -> options & DMGL_PARAMS) |
| #define | STRING_EMPTY(str) ((str) -> b == (str) -> p) |
| #define | APPEND_BLANK(str) |
| #define | LEN_STRING(str) ( (STRING_EMPTY(str))?0:((str)->p - (str)->b)) |
| #define | SCOPE_STRING(work) ((work->options & DMGL_JAVA) ? "." : "::") |
| #define | ARM_VTABLE_STRING "__vtbl__" |
| #define | ARM_VTABLE_STRLEN 8 |
| #define | TYPE_UNQUALIFIED 0x0 |
| #define | TYPE_QUAL_CONST 0x1 |
| #define | TYPE_QUAL_VOLATILE 0x2 |
| #define | TYPE_QUAL_RESTRICT 0x4 |
Enumerations | |
| enum | type_kind_t { tk_none, tk_pointer, tk_reference, tk_integral, tk_bool, tk_char, tk_real, tk_none, tk_pointer, tk_reference, tk_integral, tk_bool, tk_char, tk_real, tk_none, tk_pointer, tk_reference, tk_integral, tk_bool, tk_char, tk_real, tk_none, tk_pointer, tk_reference, tk_integral, tk_bool, tk_char, tk_real } |
Functions/Subroutines | |
| char * | malloc () |
| char * | realloc () |
| static char *ada_demangle | PARAMS ((const char *, int)) |
| void fancy_abort | PARAMS ((void)) |
| void | set_cplus_marker_for_demangling (int ch) |
| static void delete_work_stuff | PARAMS ((struct work_stuff *)) |
| static char *mop_up | PARAMS ((struct work_stuff *, string *, int)) |
| static void work_stuff_copy_to_from | PARAMS ((struct work_stuff *, struct work_stuff *)) |
| static char *internal_cplus_demangle | PARAMS ((struct work_stuff *, const char *)) |
| static int demangle_template_template_parm | PARAMS ((struct work_stuff *work, const char **, string *)) |
| static int demangle_template | PARAMS ((struct work_stuff *work, const char **, string *, string *, int, int)) |
| static int arm_pt | PARAMS ((struct work_stuff *, const char *, int, const char **, const char **)) |
| static int demangle_class_name | PARAMS ((struct work_stuff *, const char **, string *)) |
| static int demangle_qualified | PARAMS ((struct work_stuff *, const char **, string *, int, int)) |
| static int arm_special | PARAMS ((const char **, string *)) |
| static void string_need | PARAMS ((string *, int)) |
| static void string_delete | PARAMS ((string *)) |
| static void string_append | PARAMS ((string *, const char *)) |
| static void string_appends | PARAMS ((string *, string *)) |
| static void string_appendn | PARAMS ((string *, const char *, int)) |
| static int get_count | PARAMS ((const char **, int *)) |
| static int consume_count | PARAMS ((const char **)) |
| static void demangle_function_name | PARAMS ((struct work_stuff *, const char **, string *, const char *)) |
| static void remember_type | PARAMS ((struct work_stuff *, const char *, int)) |
| static void remember_Btype | PARAMS ((struct work_stuff *, const char *, int, int)) |
| static int demangle_template_value_parm | PARAMS ((struct work_stuff *, const char **, string *, type_kind_t)) |
| static int code_for_qualifier | PARAMS ((int)) |
| static void demangle_arm_hp_template | PARAMS ((struct work_stuff *, const char **, int, string *)) |
| static void recursively_demangle | PARAMS ((struct work_stuff *, const char **, string *, int)) |
| static void grow_vect | PARAMS ((char **, size_t *, size_t, int)) |
| static int | consume_count (char **type) const |
| static int | consume_count_with_underscores (char **mangled) const |
| static int | code_for_qualifier (int c) |
| static const char * | qualifier_string (int type_quals) |
| static const char * | demangle_qualifier (int c) |
| int | cplus_demangle_opname (char *opname, char *result, int options) const |
| const char * | cplus_mangle_opname (char *opname, int options) const |
| enum demangling_styles | cplus_demangle_set_style (enum demangling_styles style) |
| enum demangling_styles | cplus_demangle_name_to_style (char *name) const |
| char * | cplus_demangle (char *mangled, int options) const |
| static void | grow_vect (char **old_vect, size_t *size, size_t min_size, int element_size) |
| static char * | ada_demangle (char *mangled, option) const |
| static char * | internal_cplus_demangle (struct work_stuff *work, const char *mangled) |
| static void | squangle_mop_up (struct work_stuff *work) |
| static void | work_stuff_copy_to_from (struct work_stuff *to, struct work_stuff *from) |
| static void | delete_non_B_K_work_stuff (struct work_stuff *work) |
| static void | delete_work_stuff (struct work_stuff *work) |
| static char * | mop_up (struct work_stuff *work, string *declp, int success) |
| static int | demangle_signature (struct work_stuff *work, const char **mangled, string *declp) |
| static int | demangle_template_template_parm (struct work_stuff *work, const char **mangled, string *tname) |
| static int | demangle_expression (struct work_stuff *work, const char **mangled, string *s, type_kind_t tk) |
| static int | demangle_integral_value (struct work_stuff *work, const char **mangled, string *s) |
| static int | demangle_real_value (struct work_stuff *work, const char **mangled, string *s) |
| static int | demangle_template_value_parm (struct work_stuff *work, const char **mangled, string *s, type_kind_t tk) |
| static int | demangle_template (struct work_stuff *work, const char **mangled, string *tname, string *trawname, int is_type, int remember) |
| static int | arm_pt (struct work_stuff *work, const char *mangled, int n, const char **anchor, const char **args) |
| static void | demangle_arm_hp_template (struct work_stuff *work, const char **mangled, int n, string *declp) |
| static int | demangle_class_name (struct work_stuff *work, const char **mangled, string *declp) |
| static int | demangle_class (struct work_stuff *work, const char **mangled, string *declp) |
| static int | iterate_demangle_function (struct work_stuff *work, const char **mangled, string *declp, const char *scan) |
| static int | demangle_prefix (struct work_stuff *work, const char **mangled, string *declp) |
| static int | gnu_special (struct work_stuff *work, const char **mangled, string *declp) |
| static void | recursively_demangle (struct work_stuff *work, const char **mangled, string *result, int namelength) |
| static int | arm_special (char **mangled, string *declp) const |
| static int | demangle_qualified (struct work_stuff *work, const char **mangled, string *result, int isfuncname, int append) |
| static int | get_count (char **type, int *count) const |
| static int | do_type (struct work_stuff *work, const char **mangled, string *result) |
| static int | demangle_fund_type (struct work_stuff *work, const char **mangled, string *result) |
| static int | do_hpacc_template_const_value (work, const char **mangled, string *result) |
| static int | do_hpacc_template_literal (struct work_stuff *work, const char **mangled, string *result) |
| static int | snarf_numeric_literal (char **args, string *arg) const |
| static int | do_arg (struct work_stuff *work, const char **mangled, string *result) |
| static void | remember_type (struct work_stuff *work, const char *start, int len) |
| static void | remember_Ktype (struct work_stuff *work, const char *start, int len) |
| static int | register_Btype (struct work_stuff *work) |
| static void | remember_Btype (struct work_stuff *work, const char *start, int len, int index) |
| static void | forget_B_and_K_types (struct work_stuff *work) |
| static void | forget_types (struct work_stuff *work) |
| static int | demangle_args (struct work_stuff *work, const char **mangled, string *declp) |
| static int | demangle_nested_args (struct work_stuff *work, const char **mangled, string *declp) |
| static void | demangle_function_name (struct work_stuff *work, const char **mangled, string *declp, const char *scan) |
| static void | string_need (string *s, int n) |
| static void | string_delete (string *s) |
| static void | string_init (string *s) |
| static void | string_clear (string *s) |
| static void | string_append (string *p, const char *s) |
| static void | string_appends (string *p, string *s) |
| static void | string_appendn (string *p, const char *s, int n) |
| static void | string_prepend (string *p, const char *s) |
| static void | string_prepends (string *p, string *s) |
| static void | string_prependn (string *p, const char *s, int n) |
| static void | string_append_template_idx (string *s, int idx) |
Variables | |
| static char | char_str [2] = { '\000', '\000' } |
| struct demangler_engine | libiberty_demanglers [] |
| #define APPEND_BLANK | ( | str | ) |
Value:
{if (!STRING_EMPTY(str)) \
string_append(str, " ");}
Definition at line 321 of file cplus-dem.c.
Referenced by demangle_fund_type(), demangle_signature(), and do_type().
| #define ARM_VTABLE_STRING "__vtbl__" |
| #define ARM_VTABLE_STRLEN 8 |
| #define CPLUS_MARKER '$' |
Referenced by fancy_abort(), and PARAMS().
| #define CURRENT_DEMANGLING_STYLE work->options |
Definition at line 65 of file cplus-dem.c.
| #define INTBUF_SIZE 32 |
Definition at line 75 of file cplus-dem.c.
Referenced by demangle_fund_type(), demangle_integral_value(), and string_append_template_idx().
Definition at line 323 of file cplus-dem.c.
Referenced by demangle_class(), demangle_fund_type(), demangle_qualified(), and demangle_template().
Definition at line 71 of file cplus-dem.c.
| #define PRINT_ANSI_QUALIFIERS (work -> options & DMGL_ANSI) |
| #define PRINT_ARG_TYPES (work -> options & DMGL_PARAMS) |
Definition at line 150 of file cplus-dem.c.
Referenced by demangle_args(), and demangle_signature().
| #define SCOPE_STRING | ( | work | ) | ((work->options & DMGL_JAVA) ? "." : "::") |
Definition at line 327 of file cplus-dem.c.
Referenced by demangle_class(), demangle_qualified(), demangle_signature(), do_type(), and gnu_special().
Definition at line 320 of file cplus-dem.c.
Referenced by demangle_fund_type(), demangle_qualified(), and do_type().
| #define TYPE_QUAL_CONST 0x1 |
Definition at line 497 of file cplus-dem.c.
Referenced by altivec_init_builtins(), build_class_member_access_expr(), build_cplus_array_type(), build_dynamic_cast_1(), build_gcov_info(), build_simple_base_path(), build_this_parm(), c_apply_type_quals_to_decl(), c_common_nodes_and_builtins(), c_make_fname_decl(), check_cv_quals_for_unify(), code_for_qualifier(), copy_blkmode_from_reg(), cp_apply_type_quals_to_decl(), cp_build_qualified_type_real(), cp_fname_init(), cp_parser_cv_qualifier_seq_opt(), cp_type_qual_from_rid(), create_pseudo_type_info(), cxx_init_decl_processing(), default_function_array_conversion(), dequeue_and_dump(), do_build_assign_ref(), do_build_copy_constructor(), dump_generic_node(), dump_qualifiers(), emit_support_tinfos(), expand_asm_operands(), expand_call(), expand_expr(), expand_expr_real_1(), expand_return(), finish_non_static_data_member(), fix_string_type(), grokclassfn(), grokdeclarator(), GTY(), implicitly_declare_fn(), init_rtti_processing(), initialize_reference(), mudflap_init(), pp_c_cv_qualifier(), pp_c_type_qualifier_list(), qualifier_flags(), qualifier_string(), quals_from_declspecs(), rs6000_handle_altivec_attribute(), set_type_quals(), store_constructor(), store_field(), store_one_arg(), string_conv_p(), throw_bad_typeid(), tinfo_base_init(), typeinfo_in_lib_p(), VEC(), VPARAMS(), and write_CV_qualifiers_for_type().
| #define TYPE_QUAL_RESTRICT 0x4 |
Definition at line 499 of file cplus-dem.c.
Referenced by build_this_parm(), c_apply_type_quals_to_decl(), c_build_qualified_type(), check_cv_quals_for_unify(), code_for_qualifier(), cp_build_qualified_type_real(), cp_parser_cv_qualifier_seq_opt(), cp_type_qual_from_rid(), dequeue_and_dump(), dump_generic_node(), dump_qualifiers(), grokdeclarator(), GTY(), pp_c_cv_qualifier(), pp_c_type_qualifier_list(), qualifier_flags(), qualifier_string(), quals_from_declspecs(), set_type_quals(), type_passed_as(), and write_CV_qualifiers_for_type().
| #define TYPE_QUAL_VOLATILE 0x2 |
Definition at line 498 of file cplus-dem.c.
Referenced by build_class_member_access_expr(), build_cplus_array_type(), build_simple_base_path(), c_apply_type_quals_to_decl(), check_cv_quals_for_unify(), code_for_qualifier(), cp_build_qualified_type_real(), cp_parser_cv_qualifier_seq_opt(), cp_type_qual_from_rid(), default_function_array_conversion(), dequeue_and_dump(), dump_generic_node(), dump_qualifiers(), function_types_compatible_p(), grokdeclarator(), pp_c_cv_qualifier(), pp_c_type_qualifier_list(), qualifier_flags(), qualifier_string(), quals_from_declspecs(), set_type_quals(), and write_CV_qualifiers_for_type().
| #define TYPE_UNQUALIFIED 0x0 |
Definition at line 496 of file cplus-dem.c.
Referenced by build_aggr_init(), build_class_member_access_expr(), build_cplus_array_type(), build_m_component_ref(), build_ptrmemfunc_type(), build_type_attribute_qual_variant(), build_type_attribute_variant(), c_common_type(), complete_array_type(), composite_type(), cp_apply_type_quals_to_decl(), cp_build_qualified_type_real(), cp_parser_cv_qualifier_seq_opt(), cp_parser_ptr_operator(), cp_type_qual_from_rid(), cp_type_quals(), Create_TY_For_Tree(), demangle_signature(), dequeue_and_dump(), do_type(), find_substitution(), grokclassfn(), grokdeclarator(), grokfndecl(), GTY(), implicitly_declare_fn(), internal_cplus_demangle(), null_pointer_constant_p(), qualifier_string(), revert_static_member_fn(), set_array_declarator_inner(), typeinfo_in_lib_p(), WFE_Process_Class_Decl(), WFE_Process_Type_Decl(), WGEN_Process_Class_Decl(), and WGEN_Process_Type_Decl().
| enum type_kind_t |
Definition at line 242 of file cplus-dem.c.
| static char* ada_demangle | ( | char * | mangled, | |
| option | ||||
| ) | const [static] |
| static int arm_pt | ( | struct work_stuff * | work, | |
| const char * | mangled, | |||
| int | n, | |||
| const char ** | anchor, | |||
| const char ** | args | |||
| ) | [static] |
Definition at line 2246 of file cplus-dem.c.
References ARM_DEMANGLING, AUTO_DEMANGLING, consume_count(), EDG_DEMANGLING, HP_DEMANGLING, len, and strstr().
Referenced by demangle_arm_hp_template().
| static int arm_special | ( | char ** | mangled, | |
| string * | declp | |||
| ) | const [static] |
Definition at line 3165 of file cplus-dem.c.
References ARM_VTABLE_STRING, ARM_VTABLE_STRLEN, consume_count(), n, scan(), string_append(), string_prepend(), string_prependn(), strlen(), and strncmp().
Referenced by demangle_prefix().
| static int code_for_qualifier | ( | int | c | ) | [static] |
Definition at line 615 of file cplus-dem.c.
References abort, TYPE_QUAL_CONST, TYPE_QUAL_RESTRICT, and TYPE_QUAL_VOLATILE.
Referenced by demangle_qualifier(), demangle_signature(), and do_type().
| static int consume_count | ( | char ** | type | ) | const [static] |
Definition at line 541 of file cplus-dem.c.
References count, and ISDIGIT.
Referenced by arm_pt(), arm_special(), consume_count_with_underscores(), demangle_args(), demangle_class_name(), demangle_integral_value(), demangle_prefix(), demangle_qualified(), demangle_template(), demangle_template_value_parm(), do_arg(), do_hpacc_template_literal(), do_type(), and gnu_special().
| static int consume_count_with_underscores | ( | char ** | mangled | ) | const [static] |
Definition at line 581 of file cplus-dem.c.
References consume_count(), idx, and ISDIGIT.
Referenced by demangle_integral_value(), demangle_qualified(), demangle_template(), demangle_template_value_parm(), and do_type().
| char* cplus_demangle | ( | char * | mangled, | |
| int | options | |||
| ) | const |
Definition at line 907 of file cplus-dem.c.
References ada_demangle(), AUTO_DEMANGLING, cplus_demangle_v3(), DMGL_STYLE_MASK, GNAT_DEMANGLING, GNU_V3_DEMANGLING, int, internal_cplus_demangle(), java_demangle_v3(), JAVA_DEMANGLING, memset, no_demangling, ret, squangle_mop_up(), and xstrdup().
Referenced by Adjust_Opt_Level(), demangle(), demangle_new_symbols(), demangle_template_value_parm(), do_hpacc_template_literal(), DST_Create_Subprogram(), DST_enter_member_function(), dump_file(), lang_vers_match(), main(), mf_varname_tree(), PARAMS(), and recursively_demangle().
| enum demangling_styles cplus_demangle_name_to_style | ( | char * | name | ) | const |
Definition at line 866 of file cplus-dem.c.
References demangler_engine::demangling_style, demangler_engine::demangling_style_name, strcmp(), and unknown_demangling.
Referenced by main(), and parse_args().
| int cplus_demangle_opname | ( | char * | opname, | |
| char * | result, | |||
| int | options | |||
| ) | const |
| enum demangling_styles cplus_demangle_set_style | ( | enum demangling_styles | style | ) |
| const char* cplus_mangle_opname | ( | char * | opname, | |
| int | options | |||
| ) | const |
| static void delete_non_B_K_work_stuff | ( | struct work_stuff * | work | ) | [static] |
Definition at line 1238 of file cplus-dem.c.
References forget_types(), free(), i, NULL, string_delete(), work_stuff::typevec, and work_stuff::typevec_size.
Referenced by delete_work_stuff(), and mop_up().
| static void delete_work_stuff | ( | struct work_stuff * | work | ) | [static] |
Definition at line 1272 of file cplus-dem.c.
References delete_non_B_K_work_stuff(), and squangle_mop_up().
Referenced by iterate_demangle_function(), and work_stuff_copy_to_from().
| static int demangle_args | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | declp | |||
| ) | [static] |
Definition at line 4429 of file cplus-dem.c.
References ARM_DEMANGLING, consume_count(), do_arg(), EDG_DEMANGLING, get_count(), HP_DEMANGLING, LUCID_DEMANGLING, work_stuff::ntypes, PRINT_ARG_TYPES, r, string_append(), string_appends(), string_delete(), and work_stuff::typevec.
Referenced by demangle_nested_args(), and demangle_signature().
| static void demangle_arm_hp_template | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| int | n, | |||
| string * | declp | |||
| ) | [static] |
Definition at line 2303 of file cplus-dem.c.
References args, arm_pt(), string::b, DMGL_PARAMS, do_hpacc_template_const_value(), do_hpacc_template_literal(), do_type(), HP_DEMANGLING, NULL, string::p, p, snarf_numeric_literal(), strchr, string_append(), string_appendn(), string_appends(), string_delete(), string_init(), and strncmp().
Referenced by demangle_class_name(), demangle_function_name(), and demangle_prefix().
| static int demangle_class | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | declp | |||
| ) | [static] |
Definition at line 2540 of file cplus-dem.c.
References string::b, work_stuff::constructor, demangle_class_name(), work_stuff::destructor, LEN_STRING, string::p, register_Btype(), remember_Btype(), remember_Ktype(), SCOPE_STRING, string_delete(), string_init(), string_prepend(), and string_prepends().
Referenced by demangle_signature().
| static int demangle_class_name | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | declp | |||
| ) | [static] |
Definition at line 2484 of file cplus-dem.c.
References consume_count(), demangle_arm_hp_template(), n, and strlen().
Referenced by demangle_class(), and demangle_fund_type().
| static int demangle_expression | ( | struct work_stuff * | work, | |
| const char** | mangled, | |||
| string* | s, | |||
| type_kind_t | tk | |||
| ) | [static] |
Definition at line 1718 of file cplus-dem.c.
References ARRAY_SIZE, demangle_template_value_parm(), i, in, len, memcmp, out, string_append(), string_appendn(), and strlen().
Referenced by demangle_array_type(), demangle_expression(), demangle_integral_value(), demangle_real_value(), and demangle_template_arg().
| static void demangle_function_name | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | declp, | |||
| const char * | scan | |||
| ) | [static] |
Definition at line 4593 of file cplus-dem.c.
References ARM_DEMANGLING, ARRAY_SIZE, string::b, b, work_stuff::constructor, demangle_arm_hp_template(), work_stuff::destructor, do_type(), EDG_DEMANGLING, HP_DEMANGLING, i, in, ISLOWER, len, LUCID_DEMANGLING, memcmp, NULL, out, string::p, p, strchr, strcmp(), string_append(), string_appendn(), string_appends(), string_clear(), string_delete(), string_need(), and strlen().
Referenced by iterate_demangle_function().
| static int demangle_fund_type | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | result | |||
| ) | [static] |
Definition at line 3827 of file cplus-dem.c.
References APPEND_BLANK, string::b, buf, demangle_class_name(), demangle_qualifier(), demangle_template(), i, int, ISDIGIT, LEN_STRING, long, min, PRINT_ANSI_QUALIFIERS, register_Btype(), remember_Btype(), sprintf(), sscanf(), string_append(), string_appends(), string_delete(), STRING_EMPTY, string_init(), string_prepend(), strlen(), strncpy(), tk_bool, tk_char, tk_integral, and tk_real.
Referenced by do_type().
| static int demangle_integral_value | ( | struct work_stuff * | work, | |
| const char** | mangled, | |||
| string* | s | |||
| ) | [static] |
Definition at line 1778 of file cplus-dem.c.
References buf, consume_count(), consume_count_with_underscores(), demangle_expression(), demangle_qualified(), INTBUF_SIZE, sprintf(), string_append(), string_appendn(), and tk_integral.
Referenced by demangle_template_value_parm().
| static int demangle_nested_args | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | declp | |||
| ) | [static] |
Definition at line 4554 of file cplus-dem.c.
References demangle_args(), free(), result, and string_delete().
Referenced by do_type().
| static int demangle_prefix | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | declp | |||
| ) | [static] |
Definition at line 2698 of file cplus-dem.c.
References ARM_DEMANGLING, arm_special(), work_stuff::constructor, consume_count(), demangle_arm_hp_template(), EDG_DEMANGLING, gnu_special(), HP_DEMANGLING, i, ISDIGIT, iterate_demangle_function(), LUCID_DEMANGLING, NULL, scan(), work_stuff::static_type, strchr, string_append(), strlen(), strncmp(), strspn(), and strstr().
Referenced by demangle_nested_name(), and internal_cplus_demangle().
| static int demangle_qualified | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | result, | |||
| int | isfuncname, | |||
| int | append | |||
| ) | [static] |
Definition at line 3250 of file cplus-dem.c.
References atoi(), string::b, consume_count(), consume_count_with_underscores(), demangle_template(), work_stuff::destructor, do_type(), EDG_DEMANGLING, idx, work_stuff::ktypevec, LEN_STRING, work_stuff::numk, recursively_demangle(), register_Btype(), remember_Btype(), remember_Ktype(), SCOPE_STRING, string_append(), string_appends(), string_clear(), string_delete(), STRING_EMPTY, string_init(), and string_prepends().
Referenced by demangle_integral_value(), demangle_signature(), demangle_template_value_parm(), do_type(), and gnu_special().
| static const char* demangle_qualifier | ( | int | c | ) | [static] |
Definition at line 683 of file cplus-dem.c.
References code_for_qualifier(), and qualifier_string().
Referenced by demangle_fund_type(), and do_type().
| static int demangle_real_value | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string* | s | |||
| ) | [static] |
Definition at line 1876 of file cplus-dem.c.
References demangle_expression(), ISDIGIT, string_appendn(), and tk_real.
Referenced by demangle_template_value_parm().
| static int demangle_signature | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | declp | |||
| ) | [static] |
Definition at line 1338 of file cplus-dem.c.
References APPEND_BLANK, ARM_DEMANGLING, AUTO_DEMANGLING, code_for_qualifier(), demangle_args(), demangle_class(), demangle_qualified(), demangle_template(), work_stuff::destructor, do_type(), EDG_DEMANGLING, forget_types(), GNU_DEMANGLING, HP_DEMANGLING, ISDIGIT, LUCID_DEMANGLING, NULL, PRINT_ARG_TYPES, qualifier_string(), remember_type(), s, SCOPE_STRING, work_stuff::static_type, string_append(), string_appends(), string_delete(), string_init(), string_prepend(), string_prepends(), and TYPE_UNQUALIFIED.
Referenced by internal_cplus_demangle(), and iterate_demangle_function().
| static int demangle_template | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | tname, | |||
| string * | trawname, | |||
| int | is_type, | |||
| int | remember | |||
| ) | [static] |
Definition at line 2031 of file cplus-dem.c.
References string::b, consume_count(), consume_count_with_underscores(), demangle_template_template_parm(), demangle_template_value_parm(), DMGL_JAVA, do_type(), get_count(), i, idx, len, LEN_STRING, memcpy, string::p, r, register_Btype(), remember_Btype(), s, string_append(), string_append_template_idx(), string_appendn(), string_appends(), string_delete(), string_init(), strlen(), strncmp(), and xmalloc().
Referenced by demangle_fund_type(), demangle_qualified(), demangle_signature(), do_type(), and gnu_special().
| static int demangle_template_template_parm | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | tname | |||
| ) | [static] |
Definition at line 1654 of file cplus-dem.c.
References do_type(), get_count(), i, string::p, r, string_append(), string_appends(), and string_delete().
Referenced by demangle_template(), and demangle_template_template_parm().
| static int demangle_template_value_parm | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string* | s, | |||
| type_kind_t | tk | |||
| ) | [static] |
Definition at line 1919 of file cplus-dem.c.
References char, consume_count(), consume_count_with_underscores(), cplus_demangle(), demangle_integral_value(), demangle_qualified(), demangle_real_value(), free(), idx, p, q, string_append(), string_append_template_idx(), string_appendn(), strncpy(), tk_bool, tk_char, tk_integral, tk_pointer, tk_real, tk_reference, tmp, val, and xmalloc().
Referenced by demangle_expression(), demangle_template(), and do_type().
| static int do_arg | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | result | |||
| ) | [static] |
Definition at line 4163 of file cplus-dem.c.
References consume_count(), do_type(), remember_type(), start, string_appends(), string_delete(), string_init(), and xmalloc().
Referenced by demangle_args(), and do_arg().
| static int do_hpacc_template_const_value | ( | work | , | |
| const char ** | mangled, | |||
| string * | result | |||
| ) | [static] |
Definition at line 4029 of file cplus-dem.c.
References ISDIGIT, and string_append().
Referenced by demangle_arm_hp_template().
| static int do_hpacc_template_literal | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | result | |||
| ) | [static] |
Definition at line 4086 of file cplus-dem.c.
References consume_count(), cplus_demangle(), free(), memcpy, string_append(), string_appendn(), and xmalloc().
Referenced by demangle_arm_hp_template().
| static int do_type | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | result | |||
| ) | [static] |
Definition at line 3515 of file cplus-dem.c.
References APPEND_BLANK, string::b, code_for_qualifier(), consume_count(), consume_count_with_underscores(), demangle_fund_type(), demangle_nested_args(), demangle_qualified(), demangle_qualifier(), demangle_template(), demangle_template_value_parm(), DMGL_JAVA, get_count(), idx, ISDIGIT, member(), n, work_stuff::ntypes, NULL, work_stuff::numb, string::p, PRINT_ANSI_QUALIFIERS, qualifier_string(), SCOPE_STRING, string_append(), string_append_template_idx(), string_appends(), string_delete(), STRING_EMPTY, string_init(), string_prepend(), string_prependn(), string_prepends(), strlen(), tk_integral, tk_none, tk_pointer, tk_reference, work_stuff::type_quals, TYPE_UNQUALIFIED, and work_stuff::typevec.
Referenced by cplus_demangle_opname(), demangle_arm_hp_template(), demangle_function_name(), demangle_qualified(), demangle_signature(), demangle_template(), demangle_template_template_parm(), do_arg(), do_type(), and gnu_special().
| static void forget_B_and_K_types | ( | struct work_stuff * | work | ) | [static] |
Definition at line 4342 of file cplus-dem.c.
References work_stuff::btypevec, free(), i, work_stuff::ktypevec, NULL, work_stuff::numb, and work_stuff::numk.
Referenced by squangle_mop_up().
| static void forget_types | ( | struct work_stuff * | work | ) | [static] |
Definition at line 4370 of file cplus-dem.c.
References free(), i, work_stuff::ntypes, NULL, and work_stuff::typevec.
Referenced by delete_non_B_K_work_stuff(), and demangle_signature().
| static int get_count | ( | char ** | type, | |
| int * | count | |||
| ) | const [static] |
Definition at line 3477 of file cplus-dem.c.
Referenced by demangle_args(), demangle_template(), demangle_template_template_parm(), and do_type().
| static int gnu_special | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | declp | |||
| ) | [static] |
Definition at line 2909 of file cplus-dem.c.
References buf, consume_count(), demangle_qualified(), demangle_template(), work_stuff::destructor, do_type(), free(), internal_cplus_demangle(), ISDIGIT, n, NULL, p, SCOPE_STRING, sprintf(), strchr, strcspn(), string_append(), string_appendn(), strlen(), strncmp(), and strpbrk().
Referenced by demangle_prefix(), and internal_cplus_demangle().
| static char* internal_cplus_demangle | ( | struct work_stuff * | work, | |
| const char * | mangled | |||
| ) | [static] |
Definition at line 1080 of file cplus-dem.c.
References AUTO_DEMANGLING, demangle_prefix(), demangle_signature(), GNU_DEMANGLING, gnu_special(), mop_up(), NULL, s1, s2, s3, s4, string_init(), string_prepend(), and TYPE_UNQUALIFIED.
Referenced by cplus_demangle(), and gnu_special().
| static int iterate_demangle_function | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | declp, | |||
| const char * | scan | |||
| ) | [static] |
Definition at line 2595 of file cplus-dem.c.
References ARM_DEMANGLING, delete_work_stuff(), demangle_function_name(), demangle_signature(), EDG_DEMANGLING, HP_DEMANGLING, LUCID_DEMANGLING, memset, NULL, string_appends(), string_clear(), string_delete(), string_init(), strstr(), and work_stuff_copy_to_from().
Referenced by demangle_prefix().
| char* malloc | ( | ) |
| static char* mop_up | ( | struct work_stuff * | work, | |
| string * | declp, | |||
| int | success | |||
| ) | [static] |
Definition at line 1283 of file cplus-dem.c.
References string::b, delete_non_B_K_work_stuff(), NULL, string_appendn(), and string_delete().
Referenced by internal_cplus_demangle().
| static void recursively_demangle PARAMS | ( | (struct work_stuff *, const char **, string *, int) | ) | [static] |
| static void demangle_arm_hp_template PARAMS | ( | (struct work_stuff *, const char **, int, string *) | ) | [static] |
| static int code_for_qualifier PARAMS | ( | (int) | ) | [static] |
| static int demangle_template_value_parm PARAMS | ( | (struct work_stuff *, const char **, string *, type_kind_t) | ) | [static] |
| static void remember_Btype PARAMS | ( | (struct work_stuff *, const char *, int, int) | ) | [static] |
| static void remember_type PARAMS | ( | (struct work_stuff *, const char *, int) | ) | [static] |
| static void demangle_function_name PARAMS | ( | (struct work_stuff *, const char **, string *, const char *) | ) | [static] |
| static int consume_count PARAMS | ( | (const char **) | ) | [static] |
| static int get_count PARAMS | ( | (const char **, int *) | ) | [static] |
| static int arm_special PARAMS | ( | (const char **, string *) | ) | [static] |
| static int demangle_qualified PARAMS | ( | (struct work_stuff *, const char **, string *, int, int) | ) | [static] |
| static int demangle_class_name PARAMS | ( | (struct work_stuff *, const char **, string *) | ) | [static] |
| static int arm_pt PARAMS | ( | (struct work_stuff *, const char *, int, const char **, const char **) | ) | [static] |
| static int demangle_template PARAMS | ( | (struct work_stuff *work, const char **, string *, string *, int, int) | ) | [static] |
| static int demangle_template_template_parm PARAMS | ( | (struct work_stuff *work, const char **, string *) | ) | [static] |
| static char* internal_cplus_demangle PARAMS | ( | (struct work_stuff *, const char *) | ) | [static] |
| static void work_stuff_copy_to_from PARAMS | ( | (struct work_stuff *, struct work_stuff *) | ) | [static] |
| static char* mop_up PARAMS | ( | (struct work_stuff *, string *, int) | ) | [static] |
| static void delete_work_stuff PARAMS | ( | (struct work_stuff *) | ) | [static] |
Definition at line 77 of file cplus-dem.c.
| static char* ada_demangle PARAMS | ( | (const char *, int) | ) | [static] |
| static const char* qualifier_string | ( | int | type_quals | ) | [static] |
Definition at line 641 of file cplus-dem.c.
References abort, TYPE_QUAL_CONST, TYPE_QUAL_RESTRICT, TYPE_QUAL_VOLATILE, and TYPE_UNQUALIFIED.
Referenced by demangle_qualifier(), demangle_signature(), and do_type().
| char* realloc | ( | ) |
| static void recursively_demangle | ( | struct work_stuff * | work, | |
| const char ** | mangled, | |||
| string * | result, | |||
| int | namelength | |||
| ) | [static] |
Definition at line 3113 of file cplus-dem.c.
References cplus_demangle(), free(), memcpy, NULL, string_append(), string_appendn(), and xmalloc().
Referenced by demangle_qualified().
| static int register_Btype | ( | struct work_stuff * | work | ) | [static] |
Definition at line 4298 of file cplus-dem.c.
References work_stuff::bsize, work_stuff::btypevec, NULL, work_stuff::numb, ret, xmalloc(), and xrealloc().
Referenced by demangle_class(), demangle_fund_type(), demangle_qualified(), and demangle_template().
| static void remember_Btype | ( | struct work_stuff * | work, | |
| const char * | start, | |||
| int | len, | |||
| int | index | |||
| ) | [static] |
Definition at line 4327 of file cplus-dem.c.
References work_stuff::btypevec, memcpy, and xmalloc().
Referenced by demangle_class(), demangle_fund_type(), demangle_qualified(), and demangle_template().
| static void remember_Ktype | ( | struct work_stuff * | work, | |
| const char * | start, | |||
| int | len | |||
| ) | [static] |
Definition at line 4264 of file cplus-dem.c.
References work_stuff::ksize, work_stuff::ktypevec, memcpy, work_stuff::numk, xmalloc(), and xrealloc().
Referenced by demangle_class(), and demangle_qualified().
| static void remember_type | ( | struct work_stuff * | work, | |
| const char * | start, | |||
| int | len | |||
| ) | [static] |
Definition at line 4229 of file cplus-dem.c.
References memcpy, work_stuff::ntypes, work_stuff::typevec, work_stuff::typevec_size, xmalloc(), and xrealloc().
Referenced by demangle_signature(), and do_arg().
| void set_cplus_marker_for_demangling | ( | int | ch | ) |
Definition at line 106 of file cplus-dem.c.
| static int snarf_numeric_literal | ( | char ** | args, | |
| string * | arg | |||
| ) | const [static] |
Definition at line 4132 of file cplus-dem.c.
References ISDIGIT, and string_append().
Referenced by demangle_arm_hp_template().
| static void squangle_mop_up | ( | struct work_stuff * | work | ) | [static] |
Definition at line 1147 of file cplus-dem.c.
References work_stuff::btypevec, forget_B_and_K_types(), free(), work_stuff::ktypevec, and NULL.
Referenced by cplus_demangle(), cplus_demangle_opname(), and delete_work_stuff().
Definition at line 4817 of file cplus-dem.c.
References memcpy, n, NULL, string_need(), and strlen().
Referenced by arm_special(), demangle_args(), demangle_arm_hp_template(), demangle_expression(), demangle_function_name(), demangle_fund_type(), demangle_integral_value(), demangle_prefix(), demangle_qualified(), demangle_signature(), demangle_template(), demangle_template_template_parm(), demangle_template_value_parm(), do_hpacc_template_const_value(), do_hpacc_template_literal(), do_type(), gnu_special(), recursively_demangle(), snarf_numeric_literal(), and string_append_template_idx().
Definition at line 4901 of file cplus-dem.c.
References buf, INTBUF_SIZE, sprintf(), and string_append().
Referenced by demangle_template(), demangle_template_value_parm(), and do_type().
Definition at line 4846 of file cplus-dem.c.
References memcpy, and string_need().
Referenced by demangle_arm_hp_template(), demangle_expression(), demangle_function_name(), demangle_integral_value(), demangle_real_value(), demangle_template(), demangle_template_value_parm(), do_hpacc_template_literal(), gnu_special(), mop_up(), and recursively_demangle().
Definition at line 4831 of file cplus-dem.c.
References memcpy, n, and string_need().
Referenced by demangle_args(), demangle_arm_hp_template(), demangle_function_name(), demangle_fund_type(), demangle_qualified(), demangle_signature(), demangle_template(), demangle_template_template_parm(), do_arg(), do_type(), iterate_demangle_function(), and work_stuff_copy_to_from().
Definition at line 4799 of file cplus-dem.c.
Referenced by demangle_arm_hp_template(), demangle_function_name(), demangle_qualified(), do_arg(), do_type(), and iterate_demangle_function().
Definition at line 4781 of file cplus-dem.c.
Referenced by cplus_demangle_opname(), delete_non_B_K_work_stuff(), demangle_args(), demangle_arm_hp_template(), demangle_class(), demangle_function_name(), demangle_fund_type(), demangle_nested_args(), demangle_qualified(), demangle_signature(), demangle_template(), demangle_template_template_parm(), do_arg(), do_type(), iterate_demangle_function(), and mop_up().
Definition at line 4792 of file cplus-dem.c.
References NULL.
Referenced by demangle_arm_hp_template(), demangle_class(), demangle_fund_type(), demangle_qualified(), demangle_signature(), demangle_template(), do_arg(), do_type(), internal_cplus_demangle(), iterate_demangle_function(), and work_stuff_copy_to_from().
Definition at line 4754 of file cplus-dem.c.
References NULL, xmalloc(), and xrealloc().
Referenced by demangle_function_name(), string_append(), string_appendn(), string_appends(), and string_prependn().
Definition at line 4860 of file cplus-dem.c.
References NULL, string_prependn(), and strlen().
Referenced by arm_special(), demangle_class(), demangle_fund_type(), demangle_signature(), do_type(), and internal_cplus_demangle().
Definition at line 4881 of file cplus-dem.c.
References memcpy, q, and string_need().
Referenced by arm_special(), do_type(), string_prepend(), and string_prepends().
Definition at line 4871 of file cplus-dem.c.
References string_prependn().
Referenced by demangle_class(), demangle_qualified(), demangle_signature(), and do_type().
| static void work_stuff_copy_to_from | ( | struct work_stuff * | to, | |
| struct work_stuff * | from | |||
| ) | [static] |
Definition at line 1166 of file cplus-dem.c.
References work_stuff::bsize, work_stuff::btypevec, delete_work_stuff(), i, work_stuff::ksize, work_stuff::ktypevec, len, memcpy, work_stuff::ntmpl_args, work_stuff::ntypes, work_stuff::numb, work_stuff::numk, work_stuff::previous_argument, string_appends(), string_init(), strlen(), work_stuff::tmpl_argvec, work_stuff::typevec, work_stuff::typevec_size, and xmalloc().
Referenced by iterate_demangle_function().
char char_str[2] = { '\000', '\000' } [static] |
Definition at line 103 of file cplus-dem.c.
Definition at line 253 of file cplus-dem.c.
1.5.6