|
LLVM
4.0.0
|
#include "llvm/Demangle/Demangle.h"#include <algorithm>#include <cctype>#include <cstdlib>#include <cstring>#include <numeric>#include <string>#include <vector>Go to the source code of this file.
Enumerations | |
| enum | { unknown_error = -4, invalid_args = -3, invalid_mangled_name, memory_alloc_failure, success } |
Functions | |
| template<class C > | |
| static const char * | parse_type (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_encoding (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_name (const char *first, const char *last, C &db, bool *ends_with_template_args=0) |
| template<class C > | |
| static const char * | parse_expression (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_template_args (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_operator_name (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_unqualified_name (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_decltype (const char *first, const char *last, C &db) |
| static const char * | parse_number (const char *first, const char *last) |
| template<class Float , class C > | |
| static const char * | parse_floating_number (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_source_name (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_substitution (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_builtin_type (const char *first, const char *last, C &db) |
| static const char * | parse_cv_qualifiers (const char *first, const char *last, unsigned &cv) |
| template<class C > | |
| static const char * | parse_template_param (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_const_cast_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_dynamic_cast_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_reinterpret_cast_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_static_cast_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_pack_expansion (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_sizeof_type_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_sizeof_expr_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_sizeof_param_pack_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_function_param (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_sizeof_function_param_pack_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_typeid_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_throw_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_dot_star_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_simple_id (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_unresolved_type (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_destructor_name (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_base_unresolved_name (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_unresolved_qualifier_level (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_unresolved_name (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_dot_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_call_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_new_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_conversion_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_arrow_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_function_type (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_pointer_to_member_type (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_array_type (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_vector_type (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_integer_literal (const char *first, const char *last, const std::string &lit, C &db) |
| template<class C > | |
| static const char * | parse_expr_primary (const char *first, const char *last, C &db) |
| static std::string | base_name (std::string &s) |
| template<class C > | |
| static const char * | parse_ctor_dtor_name (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_unnamed_type_name (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_unscoped_name (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_alignof_type (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_alignof_expr (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_noexcept_expression (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_prefix_expression (const char *first, const char *last, const std::string &op, C &db) |
| template<class C > | |
| static const char * | parse_binary_expression (const char *first, const char *last, const std::string &op, C &db) |
| template<class C > | |
| static const char * | parse_template_arg (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_nested_name (const char *first, const char *last, C &db, bool *ends_with_template_args) |
| static const char * | parse_discriminator (const char *first, const char *last) |
| template<class C > | |
| static const char * | parse_local_name (const char *first, const char *last, C &db, bool *ends_with_template_args) |
| static const char * | parse_call_offset (const char *first, const char *last) |
| template<class C > | |
| static const char * | parse_special_name (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_block_invoke (const char *first, const char *last, C &db) |
| template<class C > | |
| static const char * | parse_dot_suffix (const char *first, const char *last, C &db) |
| template<class C > | |
| static void | demangle (const char *first, const char *last, C &db, int &status) |
| anonymous enum |
| Enumerator | |
|---|---|
| unknown_error | |
| invalid_args | |
| invalid_mangled_name | |
| memory_alloc_failure | |
| success | |
Definition at line 31 of file ItaniumDemangle.cpp.
|
static |
Definition at line 2474 of file ItaniumDemangle.cpp.
Referenced by parse_ctor_dtor_name().
|
static |
Definition at line 4154 of file ItaniumDemangle.cpp.
References invalid_mangled_name, parse_block_invoke(), parse_dot_suffix(), parse_encoding(), parse_type(), success, and t.
Referenced by llvm::itaniumDemangle().
|
static |
Definition at line 2766 of file ItaniumDemangle.cpp.
References parse_expression(), and t.
Referenced by parse_expression().
|
static |
Definition at line 2748 of file ItaniumDemangle.cpp.
References parse_type(), and t.
Referenced by parse_expression().
|
static |
Definition at line 1489 of file ItaniumDemangle.cpp.
References parse_expression(), parse_number(), parse_type(), and t.
Referenced by parse_type().
|
static |
Definition at line 1356 of file ItaniumDemangle.cpp.
References parse_expression(), and t.
Referenced by parse_expression().
|
static |
Definition at line 913 of file ItaniumDemangle.cpp.
References parse_destructor_name(), parse_operator_name(), parse_simple_id(), parse_template_args(), and t.
Referenced by parse_unresolved_name().
|
static |
Definition at line 2808 of file ItaniumDemangle.cpp.
References parse_expression().
Referenced by parse_expression().
|
static |
Definition at line 292 of file ItaniumDemangle.cpp.
References parse_source_name(), and t.
Referenced by parse_type().
|
static |
Definition at line 1138 of file ItaniumDemangle.cpp.
References parse_expression(), and t.
Referenced by parse_expression().
Definition at line 3795 of file ItaniumDemangle.cpp.
References parse_number(), and t.
Referenced by parse_special_name().
|
static |
Definition at line 503 of file ItaniumDemangle.cpp.
References parse_expression(), parse_type(), and t.
Referenced by parse_expression().
|
static |
Definition at line 1299 of file ItaniumDemangle.cpp.
References parse_expression(), parse_type(), and t.
Referenced by parse_expression().
|
static |
Definition at line 2532 of file ItaniumDemangle.cpp.
References base_name().
Referenced by parse_unqualified_name().
|
static |
Definition at line 434 of file ItaniumDemangle.cpp.
Referenced by parse_function_param(), parse_nested_name(), and parse_type().
|
static |
Definition at line 1544 of file ItaniumDemangle.cpp.
References parse_expression(), and t.
Referenced by parse_nested_name(), parse_type(), and parse_unresolved_type().
|
static |
Definition at line 879 of file ItaniumDemangle.cpp.
References parse_simple_id(), parse_unresolved_type(), and t.
Referenced by parse_base_unresolved_name().
Definition at line 3619 of file ItaniumDemangle.cpp.
Referenced by parse_local_name().
|
static |
Definition at line 1115 of file ItaniumDemangle.cpp.
References name, parse_expression(), parse_unresolved_name(), and t.
Referenced by parse_expression().
|
static |
Definition at line 778 of file ItaniumDemangle.cpp.
References parse_expression(), and t.
Referenced by parse_expression().
|
static |
Definition at line 4136 of file ItaniumDemangle.cpp.
Referenced by demangle().
|
static |
Definition at line 529 of file ItaniumDemangle.cpp.
References parse_expression(), parse_type(), and t.
Referenced by parse_expression().
|
static |
Definition at line 3993 of file ItaniumDemangle.cpp.
References llvm::hashing::detail::k0, llvm::hashing::detail::k1, parse_name(), parse_special_name(), parse_type(), and t.
Referenced by demangle(), parse_expr_primary(), parse_local_name(), parse_special_name(), and parse_template_arg().
|
static |
Definition at line 2330 of file ItaniumDemangle.cpp.
References llvm::ARM_AM::db, parse_encoding(), parse_integer_literal(), parse_type(), and t.
Referenced by parse_expression(), and parse_template_arg().
|
static |
Definition at line 2915 of file ItaniumDemangle.cpp.
References parse_alignof_expr(), parse_alignof_type(), parse_arrow_expr(), parse_binary_expression(), parse_call_expr(), parse_const_cast_expr(), parse_conversion_expr(), parse_dot_expr(), parse_dot_star_expr(), parse_dynamic_cast_expr(), parse_expr_primary(), parse_function_param(), parse_new_expr(), parse_noexcept_expression(), parse_pack_expansion(), parse_prefix_expression(), parse_reinterpret_cast_expr(), parse_sizeof_expr_expr(), parse_sizeof_function_param_pack_expr(), parse_sizeof_param_pack_expr(), parse_sizeof_type_expr(), parse_static_cast_expr(), parse_template_param(), parse_throw_expr(), parse_typeid_expr(), parse_unresolved_name(), and t.
Referenced by parse_alignof_expr(), parse_array_type(), parse_arrow_expr(), parse_binary_expression(), parse_call_expr(), parse_const_cast_expr(), parse_conversion_expr(), parse_decltype(), parse_dot_expr(), parse_dot_star_expr(), parse_dynamic_cast_expr(), parse_new_expr(), parse_noexcept_expression(), parse_pack_expansion(), parse_prefix_expression(), parse_reinterpret_cast_expr(), parse_sizeof_expr_expr(), parse_static_cast_expr(), parse_template_arg(), parse_throw_expr(), parse_typeid_expr(), and parse_vector_type().
|
static |
Definition at line 116 of file ItaniumDemangle.cpp.
References llvm::NVPTX::PTXLdStInstCode::Float, N, llvm::reverse(), and t.
|
static |
Definition at line 687 of file ItaniumDemangle.cpp.
References parse_cv_qualifiers(), parse_number(), t, and t0.
Referenced by parse_expression(), and parse_sizeof_function_param_pack_expr().
|
static |
Definition at line 1382 of file ItaniumDemangle.cpp.
References llvm::hashing::detail::k0, llvm::hashing::detail::k1, parse_type(), and t.
Referenced by parse_type().
|
static |
Definition at line 2296 of file ItaniumDemangle.cpp.
References parse_number(), and t.
Referenced by parse_expr_primary().
|
static |
Definition at line 3651 of file ItaniumDemangle.cpp.
References name, parse_discriminator(), parse_encoding(), parse_name(), parse_number(), and t.
Referenced by parse_name().
|
static |
Definition at line 3715 of file ItaniumDemangle.cpp.
References parse_local_name(), parse_nested_name(), parse_substitution(), parse_template_args(), parse_unscoped_name(), and t0.
Referenced by parse_encoding(), parse_local_name(), parse_special_name(), and parse_type().
|
static |
Definition at line 3483 of file ItaniumDemangle.cpp.
References name, parse_cv_qualifiers(), parse_decltype(), parse_substitution(), parse_template_args(), parse_template_param(), parse_unqualified_name(), and t0.
Referenced by parse_name().
|
static |
Definition at line 1189 of file ItaniumDemangle.cpp.
References parse_expression(), parse_type(), and t.
Referenced by parse_expression().
|
static |
Definition at line 2781 of file ItaniumDemangle.cpp.
References parse_expression().
Referenced by parse_expression().
Definition at line 62 of file ItaniumDemangle.cpp.
References t.
Referenced by parse_array_type(), parse_call_offset(), parse_function_param(), parse_integer_literal(), parse_local_name(), parse_special_name(), and parse_vector_type().
|
static |
Definition at line 2020 of file ItaniumDemangle.cpp.
References parse_source_name(), parse_type(), and t.
Referenced by parse_base_unresolved_name(), and parse_unqualified_name().
|
static |
Definition at line 604 of file ItaniumDemangle.cpp.
References parse_expression(), and t.
Referenced by parse_expression().
|
static |
Definition at line 1457 of file ItaniumDemangle.cpp.
References parse_type(), and t.
Referenced by parse_type().
|
static |
Definition at line 2794 of file ItaniumDemangle.cpp.
References parse_expression().
Referenced by parse_expression().
|
static |
Definition at line 555 of file ItaniumDemangle.cpp.
References parse_expression(), parse_type(), and t.
Referenced by parse_expression().
|
static |
Definition at line 800 of file ItaniumDemangle.cpp.
References parse_source_name(), parse_template_args(), and t.
Referenced by parse_base_unresolved_name(), parse_destructor_name(), and parse_unresolved_qualifier_level().
|
static |
Definition at line 634 of file ItaniumDemangle.cpp.
References parse_expression(), and t.
Referenced by parse_expression().
|
static |
Definition at line 719 of file ItaniumDemangle.cpp.
References parse_function_param(), and t.
Referenced by parse_expression().
|
static |
Definition at line 652 of file ItaniumDemangle.cpp.
References llvm::hashing::detail::k0, llvm::hashing::detail::k1, parse_template_param(), and t.
Referenced by parse_expression().
|
static |
Definition at line 617 of file ItaniumDemangle.cpp.
References parse_type(), and t.
Referenced by parse_expression().
|
static |
Definition at line 155 of file ItaniumDemangle.cpp.
References t.
Referenced by parse_builtin_type(), parse_operator_name(), parse_simple_id(), parse_type(), and parse_unqualified_name().
|
static |
Definition at line 3834 of file ItaniumDemangle.cpp.
References parse_call_offset(), parse_encoding(), parse_name(), parse_number(), parse_type(), t, and t0.
Referenced by parse_encoding().
|
static |
Definition at line 581 of file ItaniumDemangle.cpp.
References parse_expression(), parse_type(), and t.
Referenced by parse_expression().
|
static |
Definition at line 192 of file ItaniumDemangle.cpp.
Referenced by parse_name(), parse_nested_name(), parse_type(), and parse_unresolved_type().
|
static |
Definition at line 3376 of file ItaniumDemangle.cpp.
References parse_encoding(), parse_expr_primary(), parse_expression(), parse_type(), and t.
Referenced by parse_template_args().
|
static |
Definition at line 3422 of file ItaniumDemangle.cpp.
References llvm::hashing::detail::k0, llvm::hashing::detail::k1, parse_template_arg(), and t.
Referenced by parse_base_unresolved_name(), parse_name(), parse_nested_name(), parse_simple_id(), parse_type(), and parse_unresolved_name().
|
static |
Definition at line 458 of file ItaniumDemangle.cpp.
Referenced by parse_expression(), parse_nested_name(), parse_sizeof_param_pack_expr(), parse_type(), and parse_unresolved_type().
|
static |
Definition at line 761 of file ItaniumDemangle.cpp.
References parse_expression(), and t.
Referenced by parse_expression().
|
static |
Definition at line 1647 of file ItaniumDemangle.cpp.
References llvm::ARM_AM::db, llvm::hashing::detail::k0, llvm::hashing::detail::k1, parse_array_type(), parse_builtin_type(), parse_cv_qualifiers(), parse_decltype(), parse_function_type(), parse_name(), parse_pointer_to_member_type(), parse_source_name(), parse_substitution(), parse_template_args(), parse_template_param(), parse_vector_type(), and t.
Referenced by demangle(), parse_alignof_type(), parse_array_type(), parse_const_cast_expr(), parse_conversion_expr(), parse_dynamic_cast_expr(), parse_encoding(), parse_expr_primary(), parse_function_type(), parse_new_expr(), parse_operator_name(), parse_pointer_to_member_type(), parse_reinterpret_cast_expr(), parse_sizeof_type_expr(), parse_special_name(), parse_static_cast_expr(), parse_template_arg(), parse_typeid_expr(), parse_unnamed_type_name(), and parse_vector_type().
|
static |
Definition at line 739 of file ItaniumDemangle.cpp.
References parse_expression(), parse_type(), and t.
Referenced by parse_expression().
|
static |
Definition at line 2578 of file ItaniumDemangle.cpp.
References parse_type(), and t0.
Referenced by parse_unqualified_name().
|
static |
Definition at line 2677 of file ItaniumDemangle.cpp.
References parse_ctor_dtor_name(), parse_operator_name(), parse_source_name(), parse_unnamed_type_name(), and t.
Referenced by parse_nested_name(), parse_unresolved_type(), and parse_unscoped_name().
|
static |
Definition at line 988 of file ItaniumDemangle.cpp.
References parse_base_unresolved_name(), parse_template_args(), parse_unresolved_qualifier_level(), parse_unresolved_type(), and t.
Referenced by parse_dot_expr(), and parse_expression().
|
static |
Definition at line 958 of file ItaniumDemangle.cpp.
References parse_simple_id().
Referenced by parse_unresolved_name().
|
static |
Definition at line 824 of file ItaniumDemangle.cpp.
References llvm::hashing::detail::k0, llvm::hashing::detail::k1, parse_decltype(), parse_substitution(), parse_template_param(), parse_unqualified_name(), and t.
Referenced by parse_destructor_name(), and parse_unresolved_name().
|
static |
Definition at line 2721 of file ItaniumDemangle.cpp.
References parse_unqualified_name(), and t0.
Referenced by parse_name().
|
static |
Definition at line 1570 of file ItaniumDemangle.cpp.
References parse_expression(), parse_number(), parse_type(), and t.
Referenced by parse_type().
1.8.6