31 #if !defined(DEMANGLE_H)
42 #define DMGL_NO_OPTS 0
43 #define DMGL_PARAMS (1 << 0)
44 #define DMGL_ANSI (1 << 1)
45 #define DMGL_JAVA (1 << 2)
46 #define DMGL_VERBOSE (1 << 3)
47 #define DMGL_TYPES (1 << 4)
48 #define DMGL_RET_POSTFIX (1 << 5)
52 #define DMGL_RET_DROP (1 << 6)
57 #define DMGL_AUTO (1 << 8)
58 #define DMGL_GNU (1 << 9)
59 #define DMGL_LUCID (1 << 10)
60 #define DMGL_ARM (1 << 11)
61 #define DMGL_HP (1 << 12)
64 #define DMGL_EDG (1 << 13)
65 #define DMGL_GNU_V3 (1 << 14)
66 #define DMGL_GNAT (1 << 15)
67 #define DMGL_DLANG (1 << 16)
68 #define DMGL_RUST (1 << 17)
71 #define DMGL_STYLE_MASK (DMGL_AUTO | DMGL_GNU | DMGL_LUCID | DMGL_ARM | DMGL_HP | DMGL_EDG | DMGL_GNU_V3 | DMGL_JAVA | DMGL_GNAT | DMGL_DLANG | DMGL_RUST)
99 #define NO_DEMANGLING_STYLE_STRING "none"
100 #define AUTO_DEMANGLING_STYLE_STRING "auto"
101 #define GNU_DEMANGLING_STYLE_STRING "gnu"
102 #define LUCID_DEMANGLING_STYLE_STRING "lucid"
103 #define ARM_DEMANGLING_STYLE_STRING "arm"
104 #define HP_DEMANGLING_STYLE_STRING "hp"
105 #define EDG_DEMANGLING_STYLE_STRING "edg"
106 #define GNU_V3_DEMANGLING_STYLE_STRING "gnu-v3"
107 #define JAVA_DEMANGLING_STYLE_STRING "java"
108 #define GNAT_DEMANGLING_STYLE_STRING "gnat"
109 #define DLANG_DEMANGLING_STYLE_STRING "dlang"
110 #define RUST_DEMANGLING_STYLE_STRING "rust"
114 #define CURRENT_DEMANGLING_STYLE current_demangling_style
115 #define AUTO_DEMANGLING (((int)CURRENT_DEMANGLING_STYLE) & DMGL_AUTO)
116 #define GNU_DEMANGLING (((int)CURRENT_DEMANGLING_STYLE) & DMGL_GNU)
117 #define LUCID_DEMANGLING (((int)CURRENT_DEMANGLING_STYLE) & DMGL_LUCID)
118 #define ARM_DEMANGLING (((int)CURRENT_DEMANGLING_STYLE) & DMGL_ARM)
119 #define HP_DEMANGLING (((int)CURRENT_DEMANGLING_STYLE) & DMGL_HP)
120 #define EDG_DEMANGLING (((int)CURRENT_DEMANGLING_STYLE) & DMGL_EDG)
121 #define GNU_V3_DEMANGLING (((int)CURRENT_DEMANGLING_STYLE) & DMGL_GNU_V3)
122 #define JAVA_DEMANGLING (((int)CURRENT_DEMANGLING_STYLE) & DMGL_JAVA)
123 #define GNAT_DEMANGLING (((int)CURRENT_DEMANGLING_STYLE) & DMGL_GNAT)
124 #define DLANG_DEMANGLING (((int)CURRENT_DEMANGLING_STYLE) & DMGL_DLANG)
125 #define RUST_DEMANGLING (((int)CURRENT_DEMANGLING_STYLE) & DMGL_RUST)
633 const char *type_name);
643 const char *opname,
int args);
696 int estimated_length,
697 size_t *p_allocated_size);
@ gnu_v3_complete_object_ctor
@ gnu_v3_complete_object_allocating_ctor
@ gnu_v3_object_ctor_group
@ gnu_v3_base_object_ctor
const char * cplus_mangle_opname(const char *opname, int options)
char * java_demangle_v3(const char *mangled)
int cplus_demangle_fill_dtor(struct demangle_component *fill, enum gnu_v3_dtor_kinds kind, struct demangle_component *name)
enum demangling_styles current_demangling_style
enum demangling_styles cplus_demangle_set_style(enum demangling_styles style)
@ gnu_v3_object_dtor_group
@ gnu_v3_base_object_dtor
@ gnu_v3_complete_object_dtor
char * cplus_demangle_v3(const char *mangled, int options)
int cplus_demangle_v3_callback(const char *mangled, int options, demangle_callbackref callback, void *opaque)
void set_cplus_marker_for_demangling(int ch)
int cplus_demangle_opname(const char *opname, char *result, int options)
void rust_demangle_sym(char *sym)
char * ada_demangle(const char *mangled, int options)
int cplus_demangle_print_callback(int options, struct demangle_component *tree, demangle_callbackref callback, void *opaque)
enum demangling_styles cplus_demangle_name_to_style(const char *name)
int cplus_demangle_fill_ctor(struct demangle_component *fill, enum gnu_v3_ctor_kinds kind, struct demangle_component *name)
char * rust_demangle(const char *mangled, int options)
struct demangle_component * cplus_demangle_v3_components(const char *mangled, int options, void **mem)
char * cplus_demangle(const char *mangled, int options)
const struct demangler_engine libiberty_demanglers[]
enum gnu_v3_dtor_kinds is_gnu_v3_mangled_dtor(const char *name)
@ DEMANGLE_COMPONENT_UNNAMED_TYPE
@ DEMANGLE_COMPONENT_CTOR
@ DEMANGLE_COMPONENT_TLS_WRAPPER
@ DEMANGLE_COMPONENT_CONST
@ DEMANGLE_COMPONENT_VIRTUAL_THUNK
@ DEMANGLE_COMPONENT_TRINARY_ARG1
@ DEMANGLE_COMPONENT_REFERENCE_THIS
@ DEMANGLE_COMPONENT_TRANSACTION_CLONE
@ DEMANGLE_COMPONENT_LITERAL
@ DEMANGLE_COMPONENT_DTOR
@ DEMANGLE_COMPONENT_ARGLIST
@ DEMANGLE_COMPONENT_RESTRICT_THIS
@ DEMANGLE_COMPONENT_CONVERSION
@ DEMANGLE_COMPONENT_TRINARY
@ DEMANGLE_COMPONENT_EXTENDED_OPERATOR
@ DEMANGLE_COMPONENT_PACK_EXPANSION
@ DEMANGLE_COMPONENT_REFERENCE
@ DEMANGLE_COMPONENT_TPARM_OBJ
@ DEMANGLE_COMPONENT_TEMPLATE_PARAM
@ DEMANGLE_COMPONENT_SUB_STD
@ DEMANGLE_COMPONENT_COMPLEX
@ DEMANGLE_COMPONENT_TYPEINFO_FN
@ DEMANGLE_COMPONENT_NONTRANSACTION_CLONE
@ DEMANGLE_COMPONENT_NAME
@ DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE
@ DEMANGLE_COMPONENT_QUAL_NAME
@ DEMANGLE_COMPONENT_REFTEMP
@ DEMANGLE_COMPONENT_TRANSACTION_SAFE
@ DEMANGLE_COMPONENT_BUILTIN_TYPE
@ DEMANGLE_COMPONENT_NULLARY
@ DEMANGLE_COMPONENT_POINTER
@ DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS
@ DEMANGLE_COMPONENT_DEFAULT_ARG
@ DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS
@ DEMANGLE_COMPONENT_INITIALIZER_LIST
@ DEMANGLE_COMPONENT_TAGGED_NAME
@ DEMANGLE_COMPONENT_PTRMEM_TYPE
@ DEMANGLE_COMPONENT_HIDDEN_ALIAS
@ DEMANGLE_COMPONENT_LOCAL_NAME
@ DEMANGLE_COMPONENT_NUMBER
@ DEMANGLE_COMPONENT_FUNCTION_TYPE
@ DEMANGLE_COMPONENT_VENDOR_TYPE
@ DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL
@ DEMANGLE_COMPONENT_TEMPLATE_ARGLIST
@ DEMANGLE_COMPONENT_RESTRICT
@ DEMANGLE_COMPONENT_THROW_SPEC
@ DEMANGLE_COMPONENT_LITERAL_NEG
@ DEMANGLE_COMPONENT_VOLATILE_THIS
@ DEMANGLE_COMPONENT_TRINARY_ARG2
@ DEMANGLE_COMPONENT_CAST
@ DEMANGLE_COMPONENT_JAVA_CLASS
@ DEMANGLE_COMPONENT_RVALUE_REFERENCE
@ DEMANGLE_COMPONENT_GUARD
@ DEMANGLE_COMPONENT_ARRAY_TYPE
@ DEMANGLE_COMPONENT_BINARY_ARGS
@ DEMANGLE_COMPONENT_LAMBDA
@ DEMANGLE_COMPONENT_TLS_INIT
@ DEMANGLE_COMPONENT_COVARIANT_THUNK
@ DEMANGLE_COMPONENT_THUNK
@ DEMANGLE_COMPONENT_CONST_THIS
@ DEMANGLE_COMPONENT_NOEXCEPT
@ DEMANGLE_COMPONENT_DECLTYPE
@ DEMANGLE_COMPONENT_UNARY
@ DEMANGLE_COMPONENT_VECTOR_TYPE
@ DEMANGLE_COMPONENT_COMPOUND_NAME
@ DEMANGLE_COMPONENT_VOLATILE
@ DEMANGLE_COMPONENT_TYPED_NAME
@ DEMANGLE_COMPONENT_CHARACTER
@ DEMANGLE_COMPONENT_OPERATOR
@ DEMANGLE_COMPONENT_TYPEINFO_NAME
@ DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS
@ DEMANGLE_COMPONENT_CLONE
@ DEMANGLE_COMPONENT_IMAGINARY
@ DEMANGLE_COMPONENT_JAVA_RESOURCE
@ DEMANGLE_COMPONENT_TEMPLATE
@ DEMANGLE_COMPONENT_VTABLE
@ DEMANGLE_COMPONENT_TYPEINFO
@ DEMANGLE_COMPONENT_FUNCTION_PARAM
@ DEMANGLE_COMPONENT_FIXED_TYPE
@ DEMANGLE_COMPONENT_BINARY
char * cplus_demangle_print(int options, struct demangle_component *tree, int estimated_length, size_t *p_allocated_size)
int rust_is_mangled(const char *mangled)
int cplus_demangle_fill_component(struct demangle_component *fill, enum demangle_component_type, struct demangle_component *left, struct demangle_component *right)
enum gnu_v3_ctor_kinds is_gnu_v3_mangled_ctor(const char *name)
int cplus_demangle_fill_builtin_type(struct demangle_component *fill, const char *type_name)
int cplus_demangle_fill_extended_operator(struct demangle_component *fill, int numargs, struct demangle_component *nm)
char * dlang_demangle(const char *mangled, int options)
int java_demangle_v3_callback(const char *mangled, demangle_callbackref callback, void *opaque)
void(* demangle_callbackref)(const char *, size_t, void *)
int cplus_demangle_fill_operator(struct demangle_component *fill, const char *opname, int args)
int cplus_demangle_fill_name(struct demangle_component *fill, const char *, int)
static const char struct stat static buf struct stat static buf static vhangup int options
struct demangle_component::@376::@384 s_string
struct demangle_component::@376::@385 s_number
struct demangle_component * name
struct demangle_component * right
union demangle_component::@376 u
struct demangle_component::@376::@377 s_name
const struct demangle_operator_info * op
struct demangle_component * length
struct demangle_component::@376::@381 s_ctor
struct demangle_component::@376::@378 s_operator
enum gnu_v3_ctor_kinds kind
struct demangle_component::@376::@387 s_binary
struct demangle_component::@376::@382 s_dtor
struct demangle_component::@376::@379 s_extended_operator
struct demangle_component * sub
enum demangle_component_type type
struct demangle_component::@376::@383 s_builtin
struct demangle_component::@376::@388 s_unary_num
struct demangle_component::@376::@380 s_fixed
struct demangle_component * left
struct demangle_component::@376::@386 s_character
const char *const demangling_style_name
const char *const demangling_style_doc
enum demangling_styles demangling_style