mirror of
https://forge.sourceware.org/marek/gcc.git
synced 2026-02-22 03:47:02 -05:00
We currently list P2115R0 as implemented, but only the modules changes had been done. This patch implements the linkage changes so that unnamed unscoped enums will use the name of the first enumerator for linkage purposes. This is (strictly speaking) a breaking change, as code that previously relied on unnamed enumerations being internal linkage may have overloads using those types become exposed and clash with other functions in a different TU that have been similarly exposed. As such this feature is only implemented for C++20. No ABI flag warning is provided, partly because C++20 is still an experimental standard, but also because any affected functions could not have been part of an ABI until this change anyway. A number of testcases that are testing for behaviour of no-linkage types are adjusted to use an enumeration with no values, so that the pre-C++20 and post-C++20 behaviour is equivalently tested. In terms of implementation, I had originally considered adjusting the DECL_NAME of the enum, as with 'name_unnamed_type', but this ended up being more complicated as it had unwanted interactions with the existing modules streaming and with name lookup and diagnostic messages. This patch instead uses a new function to derive this case. The standard says that ([dcl.enum] p11) such an enum "...is denoted, for linkage purposes, by its underlying type and its first enumerator", so we need to add a new mangling production as well to handle this. PR c++/120503 PR c++/120824 gcc/cp/ChangeLog: * cp-tree.h (TYPE_UNNAMED_P): Adjust for enums with enumerators for linkage purposes. (enum_with_enumerator_for_linkage_p): Declare. * decl.cc (name_unnamed_type): Adjust assertions to handle enums with enumerators for linkage purposes. (grokdeclarator): Use a typedef name for enums with enumerators for linkage purposes. (enum_with_enumerator_for_linkage_p): New function. (finish_enum_value_list): Reset type linkage for enums with enumerators for linkage purposes. * mangle.cc (write_unnamed_enum_name): New function. (write_unqualified_name): Handle enums with enumerators for linkage purposes. * tree.cc (decl_linkage): Fixup unnamed enums. gcc/testsuite/ChangeLog: * g++.dg/abi/mangle32.C: Remove enumerator list. * g++.dg/cpp0x/linkage2.C: Likewise. * g++.dg/ext/vector26.C: Likewise. * g++.dg/other/anon3.C: Likewise. * g++.dg/abi/mangle83.C: New test. * g++.dg/modules/enum-15_a.C: New test. * g++.dg/modules/enum-15_b.C: New test. include/ChangeLog: * demangle.h (enum demangle_component_type): Add enumeration DEMANGLE_COMPONENT_UNNAMED_ENUM. libiberty/ChangeLog: * cp-demangle.c (d_unnamed_enum): New function. (d_unqualified_name): Call it. (cplus_demangle_type): Handle unscoped unnamed types (Ue, Ul, etc.) (d_count_templates_scopes): Handle unnamed enums. (d_find_pack): Likewise. (d_print_comp_inner): Print unnamed enums. * testsuite/demangle-expected: Add tests. Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com> Reviewed-by: Jason Merrill <jason@redhat.com>
1719 lines
65 KiB
Plaintext
1719 lines
65 KiB
Plaintext
# This file holds test cases for the demangler.
|
|
# Each test case looks like this:
|
|
# options
|
|
# input to be demangled
|
|
# expected output
|
|
#
|
|
# Supported options:
|
|
# --format=<name> Sets the demangling style.
|
|
# --no-params There are two lines of expected output; the first
|
|
# is with DMGL_PARAMS, the second is without it.
|
|
# --is-v3-ctor Calls is_gnu_v3_mangled_ctor on input; expected
|
|
# output is an integer representing ctor_kind.
|
|
# --is-v3-dtor Likewise, but for dtors.
|
|
# --ret-postfix Passes the DMGL_RET_POSTFIX option
|
|
#
|
|
# For compatibility, just in case it matters, the options line may be
|
|
# empty, to mean --format=auto. If it doesn't start with --, then it
|
|
# may contain only a format name.
|
|
#
|
|
# A line starting with `#' is ignored.
|
|
# However, blank lines in this file are NOT ignored.
|
|
#
|
|
#
|
|
# Tests integer overflow problem PR70492
|
|
|
|
__vt_90000000000cafebabe
|
|
__vt_90000000000cafebabe
|
|
#
|
|
# Tests write access violation PR70498
|
|
|
|
_Z80800000000000000000000
|
|
_Z80800000000000000000000
|
|
#
|
|
# Tests write access violation PR70926
|
|
|
|
0__Ot2m02R5T0000500000
|
|
0__Ot2m02R5T0000500000
|
|
#
|
|
|
|
0__GT50000000000_
|
|
0__GT50000000000_
|
|
#
|
|
|
|
__t2m05B500000000000000000_
|
|
__t2m05B500000000000000000_
|
|
##
|
|
## Tests stack overflow PR71696
|
|
#
|
|
#__10%0__S4_0T0T0
|
|
#%0<>::%0(%0<>)
|
|
# Could crash
|
|
|
|
_
|
|
_
|
|
# Could crash
|
|
|
|
_vt
|
|
_vt
|
|
# Could crash
|
|
|
|
_$_1Acitz
|
|
_$_1Acitz
|
|
# Could crash
|
|
|
|
_$_H1R
|
|
_$_H1R
|
|
# Could crash
|
|
|
|
_Q8ccQ4M2e.
|
|
_Q8ccQ4M2e.
|
|
# Could crash
|
|
|
|
_ZmmAtl
|
|
_ZmmAtl
|
|
# Could crash
|
|
--no-params
|
|
_ZZaSFvOEES_
|
|
_ZZaSFvOEES_
|
|
_ZZaSFvOEES_
|
|
# Could crash
|
|
|
|
_ZZeqFvOEES_z
|
|
_ZZeqFvOEES_z
|
|
#
|
|
# demangler/80513 Test for bogus characters after __thunk_
|
|
|
|
__thunk_16a_$_1x
|
|
__thunk_16a_$_1x
|
|
#
|
|
# demangler/80513 Test for overflow in consume_count
|
|
|
|
__thunk_4294967297__$_1x
|
|
__thunk_4294967297__$_1x
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fo5n
|
|
fo5(__int128)
|
|
fo5
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fo5o
|
|
fo5(unsigned __int128)
|
|
fo5
|
|
#
|
|
--format=java
|
|
_ZN4java3awt10ScrollPane7addImplEPNS0_9ComponentEPNS_4lang6ObjectEi
|
|
java.awt.ScrollPane.addImpl(java.awt.Component, java.lang.Object, int)
|
|
#
|
|
--format=java
|
|
_ZN4java3awt4geom15AffineTransform9getMatrixEP6JArrayIdE
|
|
java.awt.geom.AffineTransform.getMatrix(double[])
|
|
#
|
|
--format=java
|
|
_ZN23Mangle$Inner$InnerInner3fooEP6JArrayIPS0_IiEEdPS0_IPS0_IPS0_IPS0_IPN4java4lang6StringEEEEEPS0_IPS0_IPN6MangleEEE
|
|
Mangle$Inner$InnerInner.foo(int[][], double, java.lang.String[][][][], Mangle[][])
|
|
#
|
|
--format=java
|
|
_ZN6JArray1tEP6JArrayIPS_E
|
|
JArray.t(JArray[])
|
|
#
|
|
--format=java
|
|
_ZN4Prim1iEibcdfwPN4java4lang6StringEsx
|
|
Prim.i(int, boolean, byte, double, float, char, java.lang.String, short, long)
|
|
#
|
|
--format=java
|
|
_ZN4java4util14Map__U24_Entry11class__U24_E
|
|
java.util.Map$Entry.class$
|
|
#
|
|
--format=java
|
|
_ZN3org7eclipse3cdt5debug8internal4core5model9CVariable6sizeof$Ev
|
|
org.eclipse.cdt.debug.internal.core.model.CVariable.sizeof()
|
|
#
|
|
--format=auto --no-params
|
|
_Utf58_0_1__1_2147483647__2147483648
|
|
_Utf58_0_1__1_2147483647__2147483648
|
|
_Utf58_0_1__1_2147483647__2147483648
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
St9bad_alloc
|
|
std::bad_alloc
|
|
std::bad_alloc
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN1f1fE
|
|
f::f
|
|
f::f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fv
|
|
f()
|
|
f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fi
|
|
f(int)
|
|
f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3foo3bar
|
|
foo(bar)
|
|
foo
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Zrm1XS_
|
|
operator%(X, X)
|
|
operator%
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZplR1XS0_
|
|
operator+(X&, X&)
|
|
operator+
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZlsRK1XS1_
|
|
operator<<(X const&, X const&)
|
|
operator<<
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN3FooIA4_iE3barE
|
|
Foo<int [4]>::bar
|
|
Foo<int [4]>::bar
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fIiEvi
|
|
void f<int>(int)
|
|
f<int>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z5firstI3DuoEvS0_
|
|
void first<Duo>(Duo)
|
|
first<Duo>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z5firstI3DuoEvT_
|
|
void first<Duo>(Duo)
|
|
first<Duo>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooIiFvdEiEvv
|
|
void foo<int, void (double), int>()
|
|
foo<int, void (double), int>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fIFvvEEvv
|
|
void f<void ()>()
|
|
f<void ()>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN1N1fE
|
|
N::f
|
|
N::f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN6System5Sound4beepEv
|
|
System::Sound::beep()
|
|
System::Sound::beep
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN5Arena5levelE
|
|
Arena::level
|
|
Arena::level
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN5StackIiiE5levelE
|
|
Stack<int, int>::level
|
|
Stack<int, int>::level
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fI1XEvPVN1AIT_E1TE
|
|
void f<X>(A<X>::T volatile*)
|
|
f<X>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZngILi42EEvN1AIXplT_Li2EEE1TE
|
|
void operator-<42>(A<(42)+(2)>::T)
|
|
operator-<42>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z4makeI7FactoryiET_IT0_Ev
|
|
Factory<int> make<Factory, int>()
|
|
make<Factory, int>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z4makeI7FactoryiET_IT0_Ev
|
|
Factory<int> make<Factory, int>()
|
|
make<Factory, int>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3foo5Hello5WorldS0_S_
|
|
foo(Hello, World, World, Hello)
|
|
foo
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooPM2ABi
|
|
foo(int AB::**)
|
|
foo
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZlsRSoRKSs
|
|
operator<<(std::ostream&, std::string const&)
|
|
operator<<
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZTI7a_class
|
|
typeinfo for a_class
|
|
typeinfo for a_class
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
U4_farrVKPi
|
|
int* const volatile restrict _far
|
|
int* const volatile restrict _far
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooILi2EEvRAplT_Li1E_i
|
|
void foo<2>(int (&) [(2)+(1)])
|
|
foo<2>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooILi2EEvOAplT_Li1E_i
|
|
void foo<2>(int (&&) [(2)+(1)])
|
|
foo<2>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fM1AKFvvE
|
|
f(void (A::*)() const)
|
|
f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooc
|
|
foo(char)
|
|
foo
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z2f0u8char16_t
|
|
f0(char16_t)
|
|
f0
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z2f0Pu8char16_t
|
|
f0(char16_t*)
|
|
f0
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z2f0u8char32_t
|
|
f0(char32_t)
|
|
f0
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z2f0Pu8char32_t
|
|
f0(char32_t*)
|
|
f0
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
2CBIL_Z3foocEE
|
|
CB<foo(char)>
|
|
CB<foo(char)>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
2CBIL_Z7IsEmptyEE
|
|
CB<IsEmpty>
|
|
CB<IsEmpty>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZZN1N1fEiE1p
|
|
N::f(int)::p
|
|
N::f(int)::p
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZZN1N1fEiEs
|
|
N::f(int)::string literal
|
|
N::f(int)::string literal
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fPFvvEM1SFvvE
|
|
f(void (*)(), void (S::*)())
|
|
f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN1N1TIiiE2mfES0_IddE
|
|
N::T<int, int>::mf(N::T<double, double>)
|
|
N::T<int, int>::mf
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZSt5state
|
|
std::state
|
|
std::state
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZNSt3_In4wardE
|
|
std::_In::ward
|
|
std::_In::ward
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fKPFiiE
|
|
f(int (* const)(int))
|
|
f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fAszL_ZZNK1N1A1fEvE3foo_0E_i
|
|
f(int [sizeof (N::A::f() const::foo)])
|
|
f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fA37_iPS_
|
|
f(int [37], int (*) [37])
|
|
f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fM1AFivEPS0_
|
|
f(int (A::*)(), int (*)())
|
|
f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fPFPA1_ivE
|
|
f(int (*(*)()) [1])
|
|
f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fPKM1AFivE
|
|
f(int (A::* const*)())
|
|
f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1jM1AFivEPS1_
|
|
j(int (A::*)(), int (A::**)())
|
|
j
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1sPA37_iPS0_
|
|
s(int (*) [37], int (**) [37])
|
|
s
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooA30_A_i
|
|
foo(int [30][])
|
|
foo
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3kooPA28_A30_i
|
|
koo(int (*) [28][30])
|
|
koo
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZlsRKU3fooU4bart1XS0_
|
|
operator<<(X bart foo const&, X bart)
|
|
operator<<
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZlsRKU3fooU4bart1XS2_
|
|
operator<<(X bart foo const&, X bart foo const)
|
|
operator<<
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fM1AKFivE
|
|
f(int (A::*)() const)
|
|
f
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3absILi11EEvv
|
|
void abs<11>()
|
|
abs<11>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN1AIfEcvT_IiEEv
|
|
A<float>::operator int<int>()
|
|
A<float>::operator int<int>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN12libcw_app_ct10add_optionIS_EEvMT_FvPKcES3_cS3_S3_
|
|
void libcw_app_ct::add_option<libcw_app_ct>(void (libcw_app_ct::*)(char const*), char const*, char, char const*, char const*)
|
|
libcw_app_ct::add_option<libcw_app_ct>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZGVN5libcw24_GLOBAL__N_cbll.cc0ZhUKa23compiler_bug_workaroundISt6vectorINS_13omanip_id_tctINS_5debug32memblk_types_manipulator_data_ctEEESaIS6_EEE3idsE
|
|
guard variable for libcw::(anonymous namespace)::compiler_bug_workaround<std::vector<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct>, std::allocator<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct> > > >::ids
|
|
guard variable for libcw::(anonymous namespace)::compiler_bug_workaround<std::vector<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct>, std::allocator<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct> > > >::ids
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN5libcw5debug13cwprint_usingINS_9_private_12GlobalObjectEEENS0_17cwprint_using_tctIT_EERKS5_MS5_KFvRSt7ostreamE
|
|
libcw::debug::cwprint_using_tct<libcw::_private_::GlobalObject> libcw::debug::cwprint_using<libcw::_private_::GlobalObject>(libcw::_private_::GlobalObject const&, void (libcw::_private_::GlobalObject::*)(std::ostream&) const)
|
|
libcw::debug::cwprint_using<libcw::_private_::GlobalObject>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZNKSt14priority_queueIP27timer_event_request_base_ctSt5dequeIS1_SaIS1_EE13timer_greaterE3topEv
|
|
std::priority_queue<timer_event_request_base_ct*, std::deque<timer_event_request_base_ct*, std::allocator<timer_event_request_base_ct*> >, timer_greater>::top() const
|
|
std::priority_queue<timer_event_request_base_ct*, std::deque<timer_event_request_base_ct*, std::allocator<timer_event_request_base_ct*> >, timer_greater>::top
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZNKSt15_Deque_iteratorIP15memory_block_stRKS1_PS2_EeqERKS5_
|
|
std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*>::operator==(std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*> const&) const
|
|
std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*>::operator==
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZNKSt17__normal_iteratorIPK6optionSt6vectorIS0_SaIS0_EEEmiERKS6_
|
|
std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > >::operator-(std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > > const&) const
|
|
std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > >::operator-
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZNSbIcSt11char_traitsIcEN5libcw5debug27no_alloc_checking_allocatorEE12_S_constructIPcEES6_T_S7_RKS3_
|
|
char* std::basic_string<char, std::char_traits<char>, libcw::debug::no_alloc_checking_allocator>::_S_construct<char*>(char*, char*, libcw::debug::no_alloc_checking_allocator const&)
|
|
std::basic_string<char, std::char_traits<char>, libcw::debug::no_alloc_checking_allocator>::_S_construct<char*>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fI1APS0_PKS0_EvT_T0_T1_PA4_S3_M1CS8_
|
|
void f<A, A*, A const*>(A, A*, A const*, A const* (*) [4], A const* (* C::*) [4])
|
|
f<A, A*, A const*>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooiPiPS_PS0_PS1_PS2_PS3_PS4_PS5_PS6_PS7_PS8_PS9_PSA_PSB_PSC_
|
|
foo(int, int*, int**, int***, int****, int*****, int******, int*******, int********, int*********, int**********, int***********, int************, int*************, int**************, int***************)
|
|
foo
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZSt1BISt1DIP1ARKS2_PS3_ES0_IS2_RS2_PS2_ES2_ET0_T_SB_SA_PT1_
|
|
std::D<A*, A*&, A**> std::B<std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A*>(std::D<A*, A* const&, A* const*>, std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A**)
|
|
std::B<std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A*>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_X11TransParseAddress
|
|
_X11TransParseAddress
|
|
_X11TransParseAddress
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZNSt13_Alloc_traitsISbIcSt18string_char_traitsIcEN5libcw5debug9_private_17allocator_adaptorIcSt24__default_alloc_templateILb0ELi327664EELb1EEEENS5_IS9_S7_Lb1EEEE15_S_instancelessE
|
|
std::_Alloc_traits<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, libcw::debug::_private_::allocator_adaptor<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, std::__default_alloc_template<false, 327664>, true> >::_S_instanceless
|
|
std::_Alloc_traits<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, libcw::debug::_private_::allocator_adaptor<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, std::__default_alloc_template<false, 327664>, true> >::_S_instanceless
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_GLOBAL__I__Z2fnv
|
|
global constructors keyed to fn()
|
|
global constructors keyed to fn()
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1rM1GFivEMS_KFivES_M1HFivES1_4whatIKS_E5what2IS8_ES3_
|
|
r(int (G::*)(), int (G::*)() const, G, int (H::*)(), int (G::*)(), what<G const>, what2<G const>, int (G::*)() const)
|
|
r
|
|
#
|
|
# This is from the gdb testsuite gdb.cp/cplusfuncs.exp.
|
|
--format=gnu-v3 --no-params
|
|
_Z10hairyfunc5PFPFilEPcE
|
|
hairyfunc5(int (*(*)(char*))(long))
|
|
hairyfunc5
|
|
#
|
|
# This is from gcc PR 8861
|
|
--format=gnu-v3 --no-params
|
|
_Z1fILi1ELc120EEv1AIXplT_cviLd810000000000000000703DAD7A370C5EEE
|
|
void f<1, (char)120>(A<(1)+((int)((double)[810000000000000000703DAD7A370C5]))>)
|
|
f<1, (char)120>
|
|
#
|
|
# This is also from gcc PR 8861
|
|
--format=gnu-v3 --no-params
|
|
_Z1fILi1EEv1AIXplT_cvingLf3f800000EEE
|
|
void f<1>(A<(1)+((int)(-((float)[3f800000])))>)
|
|
f<1>
|
|
#
|
|
# This is from a libstdc++ debug mode patch.
|
|
--format=gnu-v3 --no-params
|
|
_ZNK11__gnu_debug16_Error_formatter14_M_format_wordImEEvPciPKcT_
|
|
void __gnu_debug::_Error_formatter::_M_format_word<unsigned long>(char*, int, char const*, unsigned long) const
|
|
__gnu_debug::_Error_formatter::_M_format_word<unsigned long>
|
|
#
|
|
# The new demangler used to core dump on this.
|
|
--format=gnu-v3 --no-params
|
|
_ZSt18uninitialized_copyIN9__gnu_cxx17__normal_iteratorIPSt4pairISsPFbP6sqlitePPcEESt6vectorIS9_SaIS9_EEEESE_ET0_T_SG_SF_
|
|
__gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > > std::uninitialized_copy<__gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > >, __gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > > >(__gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > >, __gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > >, __gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > >)
|
|
std::uninitialized_copy<__gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > >, __gnu_cxx::__normal_iterator<std::pair<std::string, bool (*)(sqlite*, char**)>*, std::vector<std::pair<std::string, bool (*)(sqlite*, char**)>, std::allocator<std::pair<std::string, bool (*)(sqlite*, char**)> > > > >
|
|
#
|
|
# The new demangler used to fail on this.
|
|
--format=gnu-v3 --no-params
|
|
_Z1fP1cIPFiiEE
|
|
f(c<int (*)(int)>*)
|
|
f
|
|
#
|
|
# Wrap expressions using '>' in an extra layer of parens to avoid
|
|
# confusion with the '>' which ends the template parameters.
|
|
--format=gnu-v3 --no-params
|
|
_Z4dep9ILi3EEvP3fooIXgtT_Li2EEE
|
|
void dep9<3>(foo<((3)>(2))>*)
|
|
dep9<3>
|
|
#
|
|
# Watch out for templated version of `operator<'--it needs an extra
|
|
# space.
|
|
--format=gnu-v3 --no-params
|
|
_ZStltI9file_pathSsEbRKSt4pairIT_T0_ES6_
|
|
bool std::operator< <file_path, std::string>(std::pair<file_path, std::string> const&, std::pair<file_path, std::string> const&)
|
|
std::operator< <file_path, std::string>
|
|
#
|
|
# More hairy qualifier handling.
|
|
--format=gnu-v3 --no-params
|
|
_Z9hairyfuncM1YKFPVPFrPA2_PM1XKFKPA3_ilEPcEiE
|
|
hairyfunc(int (* const (X::** (* restrict (* volatile* (Y::*)(int) const)(char*)) [2])(long) const) [3])
|
|
hairyfunc
|
|
#
|
|
# Check that negative numbers are handled correctly.
|
|
--format=gnu-v3 --no-params
|
|
_Z1fILin1EEvv
|
|
void f<-1>()
|
|
f<-1>
|
|
#
|
|
# Check a destructor of a standard substitution.
|
|
--format=gnu-v3 --no-params
|
|
_ZNSdD0Ev
|
|
std::basic_iostream<char, std::char_traits<char> >::~basic_iostream()
|
|
std::basic_iostream<char, std::char_traits<char> >::~basic_iostream
|
|
#
|
|
# Another case where we got member function qualifiers wrong.
|
|
--format=gnu-v3 --no-params
|
|
_ZNK15nsBaseHashtableI15nsUint32HashKey8nsCOMPtrI4IFooEPS2_E13EnumerateReadEPF15PLDHashOperatorRKjS4_PvES9_
|
|
nsBaseHashtable<nsUint32HashKey, nsCOMPtr<IFoo>, IFoo*>::EnumerateRead(PLDHashOperator (*)(unsigned int const&, IFoo*, void*), void*) const
|
|
nsBaseHashtable<nsUint32HashKey, nsCOMPtr<IFoo>, IFoo*>::EnumerateRead
|
|
#
|
|
# Another member function qualifier test case, when the member function
|
|
# returns a pointer to function.
|
|
--format=gnu-v3 --no-params
|
|
_ZNK1C1fIiEEPFivEv
|
|
int (*C::f<int>() const)()
|
|
C::f<int>
|
|
#
|
|
# Another case where we got member function qualifiers wrong.
|
|
--format=gnu-v3 --no-params
|
|
_ZZ3BBdI3FooEvvENK3Fob3FabEv
|
|
BBd<Foo>()::Fob::Fab() const
|
|
BBd<Foo>()::Fob::Fab
|
|
#
|
|
# The same idea one level deeper.
|
|
--format=gnu-v3 --no-params
|
|
_ZZZ3BBdI3FooEvvENK3Fob3FabEvENK3Gob3GabEv
|
|
BBd<Foo>()::Fob::Fab() const::Gob::Gab() const
|
|
BBd<Foo>()::Fob::Fab() const::Gob::Gab
|
|
#
|
|
# Yet another member function qualifier problem.
|
|
--format=gnu-v3 --no-params
|
|
_ZNK5boost6spirit5matchI13rcs_deltatextEcvMNS0_4impl5dummyEFvvEEv
|
|
boost::spirit::match<rcs_deltatext>::operator void (boost::spirit::impl::dummy::*)()() const
|
|
boost::spirit::match<rcs_deltatext>::operator void (boost::spirit::impl::dummy::*)()
|
|
#
|
|
# Multi-dimensional arrays with qualifiers on the inner dimensions.
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooIA6_KiEvA9_KT_rVPrS4_
|
|
void foo<int const [6]>(int const [9][6], int restrict const (* volatile restrict) [9][6])
|
|
foo<int const [6]>
|
|
#
|
|
# From PR libstdc++/12736
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooIA3_iEvRKT_
|
|
void foo<int [3]>(int const (&) [3])
|
|
foo<int [3]>
|
|
#
|
|
# Related to PR libstdc++/12736
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooIPA3_iEvRKT_
|
|
void foo<int (*) [3]>(int (* const&) [3])
|
|
foo<int (*) [3]>
|
|
#
|
|
# This used to crash the demangler--PR 16240
|
|
--format=gnu-v3 --no-params
|
|
_ZN13PatternDriver23StringScalarDeleteValueC1ERKNS_25ConflateStringScalarValueERKNS_25AbstractStringScalarValueERKNS_12TemplateEnumINS_12pdcomplementELZNS_16complement_namesEELZNS_14COMPLEMENTENUMEEEE
|
|
PatternDriver::StringScalarDeleteValue::StringScalarDeleteValue(PatternDriver::ConflateStringScalarValue const&, PatternDriver::AbstractStringScalarValue const&, PatternDriver::TemplateEnum<PatternDriver::pdcomplement, PatternDriver::complement_names, PatternDriver::COMPLEMENTENUM> const&)
|
|
PatternDriver::StringScalarDeleteValue::StringScalarDeleteValue
|
|
#
|
|
# This used to cause the demangler to walk into undefined memory--PR 22268
|
|
--format=gnu-v3 --no-params
|
|
ALsetchannels
|
|
ALsetchannels
|
|
ALsetchannels
|
|
# Test GNU V3 constructor and destructor identification.
|
|
# 0 means it is not a constructor/destructor.
|
|
# Other integers correspond to enum gnu_v3_{c,d}tor_kinds in demangle.h.
|
|
--is-v3-ctor
|
|
_GLOBAL__I__Z2fnv
|
|
0
|
|
#
|
|
--is-v3-dtor
|
|
_GLOBAL__I__Z2fnv
|
|
0
|
|
#
|
|
--is-v3-ctor
|
|
_ZNSdC1Ev
|
|
1
|
|
#
|
|
--is-v3-dtor
|
|
_ZNSdC1Ev
|
|
0
|
|
#
|
|
--is-v3-ctor
|
|
_ZNSdD0Ev
|
|
0
|
|
#
|
|
--is-v3-dtor
|
|
_ZNSdD0Ev
|
|
1
|
|
#
|
|
--is-v3-ctor
|
|
_ZNSdC2Ev
|
|
2
|
|
#
|
|
--is-v3-dtor
|
|
_ZNSdC2Ev
|
|
0
|
|
#
|
|
--is-v3-ctor
|
|
_ZNSdD1Ev
|
|
0
|
|
#
|
|
--is-v3-dtor
|
|
_ZNSdD1Ev
|
|
2
|
|
#
|
|
# This used to cause a crash. It doesn't follow the C++ encoding so
|
|
# the demangled name should be identical to the original symbol name.
|
|
--format=auto --no-params
|
|
_test_array__L_1__B23b___clean.6
|
|
_test_array__L_1__B23b___clean.6
|
|
_test_array__L_1__B23b___clean.6
|
|
#
|
|
--format=java
|
|
_ZGAN4java4lang5Class7forNameEPNS0_6StringE
|
|
hidden alias for java.lang.Class.forName(java.lang.String)
|
|
#
|
|
# Test cases to verify encoding that determines if a return type is present
|
|
# Related to PR9861
|
|
--format=java
|
|
_ZN4java4lang4Math4acosEJdd
|
|
java.lang.Math.acos(double)double
|
|
#
|
|
--format=auto
|
|
_ZN4java4lang4Math4acosEJdd
|
|
double java::lang::Math::acos(double)
|
|
#
|
|
--format=auto
|
|
_ZN4java4lang4Math4acosEJvd
|
|
void java::lang::Math::acos(double)
|
|
#
|
|
--format=auto --ret-postfix
|
|
_ZN4java4lang4Math4acosEJdd
|
|
java::lang::Math::acos(double)double
|
|
#
|
|
--format=gnu-v3 --no-params --ret-postfix
|
|
_Z4makeI7FactoryiET_IT0_Ev
|
|
make<Factory, int>()Factory<int>
|
|
make<Factory, int>
|
|
#
|
|
# From PR 28797
|
|
--format=auto --no-params
|
|
_Z1fM1AKiPKS1_
|
|
f(int const A::*, int const A::* const*)
|
|
f
|
|
# This used to cause a core dump in the demangler -- PR 29176
|
|
--format=auto --no-params
|
|
SASDASDFASDF_sdfsdf
|
|
SASDASDFASDF_sdfsdf
|
|
SASDASDFASDF_sdfsdf
|
|
# These are all cases of invalid manglings where the demangler would read
|
|
# past the end of the string.
|
|
# d_name wasn't honouring a NULL from d_substitution
|
|
--format=gnu-v3
|
|
_ZSA
|
|
_ZSA
|
|
# d_expr_primary wasn't honouring NULL from cplus_demangle_mangled_name
|
|
--format=gnu-v3
|
|
_ZN1fIL_
|
|
_ZN1fIL_
|
|
# d_operator_name was taking two characters in a row
|
|
--format=gnu-v3
|
|
_Za
|
|
_Za
|
|
# d_prefix wasn't honouring NULL from d_substitution
|
|
--format=gnu-v3
|
|
_ZNSA
|
|
_ZNSA
|
|
# d_prefix wasn't honouring NULL from d_template_param
|
|
--format=gnu-v3
|
|
_ZNT
|
|
_ZNT
|
|
# Dereferencing NULL in d_pointer_to_member_type
|
|
--format=gnu-v3
|
|
_Z1aMark
|
|
_Z1aMark
|
|
# <local-source-name> test 1
|
|
--format=gnu-v3
|
|
_ZL3foo_2
|
|
foo
|
|
# <local-source-name> test 2
|
|
--format=gnu-v3
|
|
_ZZL3foo_2vE4var1
|
|
foo()::var1
|
|
# <local-source-name> test 3
|
|
--format=gnu-v3
|
|
_ZZL3foo_2vE4var1_0
|
|
foo()::var1
|
|
# <local-source-name> test 4
|
|
--format=gnu-v3
|
|
_ZZN7myspaceL3foo_1EvEN11localstruct1fEZNS_3fooEvE16otherlocalstruct
|
|
myspace::foo()::localstruct::f(myspace::foo()::otherlocalstruct)
|
|
# Java resource name
|
|
--format=gnu-v3
|
|
_ZGr32_java$Sutil$Siso4217$_properties
|
|
java resource java/util/iso4217.properties
|
|
# decltype/param placeholder test
|
|
--format=gnu-v3
|
|
_Z3addIidEDTplfp_fp0_ET_T0_
|
|
decltype ({parm#1}+{parm#2}) add<int, double>(int, double)
|
|
# decltype scope test
|
|
--format=gnu-v3
|
|
_Z1fI1SENDtfp_E4typeET_
|
|
decltype ({parm#1})::type f<S>(S)
|
|
# decltype/fn call test
|
|
--format=gnu-v3
|
|
_Z4add3IidEDTclL_Z1gEfp_fp0_EET_T0_
|
|
decltype (g({parm#1}, {parm#2})) add3<int, double>(int, double)
|
|
# 'this' test
|
|
--format=gnu-v3
|
|
_ZN1A1fIiEEDTcldtdtdefpT1b1fIT_EEEv
|
|
decltype ((((*this).b).(f<int>))()) A::f<int>()
|
|
# new (2008) built in types test
|
|
--format=gnu-v3
|
|
_Z1fDfDdDeDhDsDi
|
|
f(decimal32, decimal64, decimal128, half, char16_t, char32_t)
|
|
# pack expansion test
|
|
--format=gnu-v3
|
|
_Z1fIIPiPfPdEEvDpT_
|
|
void f<int*, float*, double*>(int*, float*, double*)
|
|
# '.' test
|
|
--format=gnu-v3
|
|
_Z1hI1AIiEdEDTcldtfp_1gIT0_EEET_S2_
|
|
decltype (({parm#1}.(g<double>))()) h<A<int>, double>(A<int>, double)
|
|
# test for typed function in decltype
|
|
--format=gnu-v3
|
|
_ZN1AIiE1jIiEEDTplfp_clL_Z1xvEEET_
|
|
decltype ({parm#1}+(x())) A<int>::j<int>(int)
|
|
# typed function in decltype with an argument list
|
|
--format=gnu-v3
|
|
_Z1tIlEDTplcvT_Li5EclL_Z1qsELi6EEEv
|
|
decltype (((long)(5))+(q(6))) t<long>()
|
|
# test for expansion of function parameter pack
|
|
--format=gnu-v3
|
|
_Z1gIJidEEDTclL_Z1fEspplfp_Li1EEEDpT_
|
|
decltype (f(({parm#1}+(1))...)) g<int, double>(int, double)
|
|
# lambda tests
|
|
--format=gnu-v3
|
|
_ZZ1giENKUlvE_clEv
|
|
g(int)::{lambda()#1}::operator()() const
|
|
--format=gnu-v3
|
|
_Z4algoIZ1giEUlvE0_EiT_
|
|
int algo<g(int)::{lambda()#2}>(g(int)::{lambda()#2})
|
|
--format=gnu-v3
|
|
_ZZN1S1fEiiEd0_NKUlvE0_clEv
|
|
S::f(int, int)::{default arg#2}::{lambda()#2}::operator()() const
|
|
--format=gnu-v3
|
|
_ZNK1SIiE1xMUlvE1_clEv
|
|
S<int>::x::{lambda()#3}::operator()() const
|
|
--format=gnu-v3
|
|
_ZN8functionC1IZN1CIiE4testES_Ed_UliE_EET_
|
|
function::function<C<int>::test(function)::{default arg#1}::{lambda(int)#1}>(C<int>::test(function)::{default arg#1}::{lambda(int)#1})
|
|
--format=gnu-v3
|
|
_Z1fN1SUt_E
|
|
f(S::{unnamed type#1})
|
|
--format=gnu-v3
|
|
_Z1fDv32_f
|
|
f(float __vector(32))
|
|
--format=gnu-v3
|
|
_Z1fIfLi4EEvDv_T0__T_
|
|
void f<float, 4>(float __vector(4))
|
|
--format=gnu-v3
|
|
_Z1fI1AEDTclonplfp_fp_EET_
|
|
decltype ((operator+)({parm#1}, {parm#1})) f<A>(A)
|
|
--format=gnu-v3
|
|
_Z1hI1AEDTcldtfp_miEET_
|
|
decltype (({parm#1}.(operator-))()) h<A>(A)
|
|
--format=gnu-v3
|
|
_Z1fDn
|
|
f(decltype(nullptr))
|
|
--format=gnu-v3
|
|
_Z1fIRiEvOT_b
|
|
void f<int&>(int&, bool)
|
|
--format=gnu-v3
|
|
_ZN5aaaaa6bbbbbb5cccccIN23ddddddddddddddddddddddd3eeeENS2_4ffff16ggggggggggggggggENS0_9hhhhhhhhhES6_S6_S6_S6_S6_S6_S6_EE
|
|
aaaaa::bbbbbb::ccccc<ddddddddddddddddddddddd::eee, ddddddddddddddddddddddd::ffff::gggggggggggggggg, aaaaa::bbbbbb::hhhhhhhhh, aaaaa::bbbbbb::hhhhhhhhh, aaaaa::bbbbbb::hhhhhhhhh, aaaaa::bbbbbb::hhhhhhhhh, aaaaa::bbbbbb::hhhhhhhhh, aaaaa::bbbbbb::hhhhhhhhh, aaaaa::bbbbbb::hhhhhhhhh, aaaaa::bbbbbb::hhhhhhhhh>
|
|
--format=gnu-v3
|
|
_Z5outerIsEcPFilE
|
|
char outer<short>(int (*)(long))
|
|
--format=gnu-v3
|
|
_Z5outerPFsiEl
|
|
outer(short (*)(int), long)
|
|
--format=gnu-v3
|
|
_Z6outer2IsEPFilES1_
|
|
int (*outer2<short>(int (*)(long)))(long)
|
|
--format=gnu-v3 --ret-postfix
|
|
_Z5outerIsEcPFilE
|
|
outer<short>(int (*)(long))char
|
|
--format=gnu-v3 --ret-postfix
|
|
_Z5outerPFsiEl
|
|
outer(short (*)(int), long)
|
|
--format=gnu-v3 --ret-postfix
|
|
_Z6outer2IsEPFilES1_
|
|
outer2<short>(int (*)(long))int (*)(long)
|
|
--format=gnu-v3 --ret-drop
|
|
_Z5outerIsEcPFilE
|
|
outer<short>(int (*)(long))
|
|
--format=gnu-v3 --ret-drop
|
|
_Z5outerPFsiEl
|
|
outer(short (*)(int), long)
|
|
--format=gnu-v3 --ret-drop
|
|
_Z6outer2IsEPFilES1_
|
|
outer2<short>(int (*)(long))
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN1KIXadL_ZN1S1mEiEEE1fEv
|
|
K<&S::m>::f()
|
|
K<&S::m>::f
|
|
--format=gnu-v3
|
|
_ZN1KILi1EXadL_ZN1S1mEiEEE1fEv
|
|
K<1, &S::m>::f()
|
|
# Here the `(int)' argument list of `S::m' is already removed.
|
|
--format=gnu-v3
|
|
_ZN1KILi1EXadL_ZN1S1mEEEE1fEv
|
|
K<1, &S::m>::f()
|
|
#
|
|
# Used to crash -- binutils PR 13030.
|
|
--format=gnu-v3
|
|
_ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_
|
|
_ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_
|
|
# A pack expansion is substitutable.
|
|
--format=gnu-v3
|
|
_Z1fIJiEiEv1AIJDpT_EET0_S4_
|
|
void f<int, int>(A<int>, int, int)
|
|
# So is decltype.
|
|
--format=gnu-v3
|
|
_Z1fIiiEDTcvT__EET0_S2_
|
|
decltype ((int)()) f<int, int>(int, int)
|
|
# And vector.
|
|
--format=gnu-v3
|
|
_Z1fDv4_iS_
|
|
f(int __vector(4), int __vector(4))
|
|
--format=gnu-v3
|
|
_Z2f1Ii1AEDTdsfp_fp0_ET0_MS2_T_
|
|
decltype ({parm#1}.*{parm#2}) f1<int, A>(A, int A::*)
|
|
--format=gnu-v3
|
|
_Z2f2IiEDTquL_Z1bEfp_trET_
|
|
decltype (b?{parm#1} : (throw)) f2<int>(int)
|
|
--format=gnu-v3
|
|
_Z6check1IiEvP6helperIXsznw_T_EEE
|
|
void check1<int>(helper<sizeof (new int)>*)
|
|
--format=gnu-v3
|
|
_Z6check2IiEvP6helperIXszgsnw_T_piEEE
|
|
void check2<int>(helper<sizeof (::new int())>*)
|
|
--format=gnu-v3
|
|
_Z6check3IiEvP6helperIXsznwadL_Z1iE_T_piLi1EEEE
|
|
void check3<int>(helper<sizeof (new (&i) int(1))>*)
|
|
--format=gnu-v3
|
|
_Z6check4IiEvP6helperIXszna_A1_T_EEE
|
|
void check4<int>(helper<sizeof (new int [1])>*)
|
|
--format=gnu-v3
|
|
_Z6check5IiEvP6helperIXszna_A1_T_piEEE
|
|
void check5<int>(helper<sizeof (new int [1]())>*)
|
|
--format=gnu-v3
|
|
_Z1fIiEDTcmgsdlfp_psfp_EPT_
|
|
decltype ((::delete {parm#1}),(+{parm#1})) f<int>(int*)
|
|
--format=gnu-v3
|
|
_Z1fIiEDTcmdafp_psfp_EPT_
|
|
decltype ((delete[] {parm#1}),(+{parm#1})) f<int>(int*)
|
|
--format=gnu-v3
|
|
_ZN1AdlEPv
|
|
A::operator delete(void*)
|
|
--format=gnu-v3
|
|
_Z2f1IiEDTppfp_ET_
|
|
decltype ({parm#1}++) f1<int>(int)
|
|
--format=gnu-v3
|
|
_Z2f1IiEDTpp_fp_ET_
|
|
decltype (++{parm#1}) f1<int>(int)
|
|
--format=gnu-v3
|
|
_Z2f1IiEDTcl1gfp_ilEEET_
|
|
decltype (g({parm#1}, {})) f1<int>(int)
|
|
--format=gnu-v3
|
|
_Z2f1IiEDTnw_T_ilEES0_
|
|
decltype (new int{}) f1<int>(int)
|
|
--format=gnu-v3
|
|
_Zli2_wPKc
|
|
operator"" _w(char const*)
|
|
--format=gnu-v3
|
|
_Z1fIiEDTnw_Dapifp_EET_
|
|
decltype (new auto({parm#1})) f<int>(int)
|
|
--format=gnu-v3
|
|
_Z1fIiERDaRKT_S1_
|
|
auto& f<int>(int const&, int)
|
|
--format=gnu-v3
|
|
_Z1gIiEDcRKT_S0_
|
|
decltype(auto) g<int>(int const&, int)
|
|
--format=gnu-v3
|
|
_Z1gILi1EEvR1AIXT_EER1BIXscbT_EE
|
|
void g<1>(A<1>&, B<static_cast<bool>(1)>&)
|
|
--format=gnu-v3
|
|
_ZNKSt7complexIiE4realB5cxx11Ev
|
|
std::complex<int>::real[abi:cxx11]() const
|
|
#
|
|
# Some more crashes revealed by fuzz-testing:
|
|
# Check for NULL pointer when demangling trinary operators
|
|
--format=gnu-v3
|
|
_Z1fAv32_f
|
|
_Z1fAv32_f
|
|
# Do not overflow when decoding identifier length
|
|
--format=gnu-v3
|
|
_Z11111111111
|
|
_Z11111111111
|
|
# Check out-of-bounds access when decoding braced initializer list
|
|
--format=gnu-v3
|
|
_ZDTtl
|
|
_ZDTtl
|
|
# Check for NULL pointer when demangling DEMANGLE_COMPONENT_LOCAL_NAME
|
|
--format=gnu-v3
|
|
_ZZN1fEEd_lEv
|
|
_ZZN1fEEd_lEv
|
|
# Handle DEMANGLE_COMPONENT_FIXED_TYPE in d_find_pack
|
|
--format=gnu-v3
|
|
_Z1fDpDFT_
|
|
_Z1fDpDFT_
|
|
# Likewise, DEMANGLE_COMPONENT_DEFAULT_ARG
|
|
--format=gnu-v3
|
|
_Z1fIDpZ1fEd_E
|
|
_Z1fIDpZ1fEd_E
|
|
# Likewise, DEMANGLE_COMPONENT_NUMBER
|
|
--format=gnu-v3
|
|
_Z1fDpDv1_c
|
|
f((char __vector(1))...)
|
|
#
|
|
# Ada (GNAT) tests.
|
|
#
|
|
# Simple test.
|
|
--format=gnat
|
|
yz__qrs
|
|
yz.qrs
|
|
# Operator
|
|
--format=gnat
|
|
oper__Oadd
|
|
oper."+"
|
|
# Overloaded subprogram.
|
|
--format=gnat
|
|
yz__qrs__2
|
|
yz.qrs
|
|
# Nested subprogram.
|
|
--format=gnat
|
|
yz__qrs__tuv.1661
|
|
yz.qrs.tuv
|
|
# Nested and overloaded subprograms.
|
|
--format=gnat
|
|
yz__qrs__tuv__2_1.1667
|
|
yz.qrs.tuv
|
|
--format=gnat
|
|
yz__qrs__tuv__2_2.1670
|
|
yz.qrs.tuv
|
|
--format=gnat
|
|
yz__qrs__tuv__2_3.1674
|
|
yz.qrs.tuv
|
|
# Elaborated flag (not demangled)
|
|
--format=gnat
|
|
x_E
|
|
<x_E>
|
|
# Nested package
|
|
--format=gnat
|
|
x__m1
|
|
x.m1
|
|
--format=gnat
|
|
x__m3
|
|
x.m3
|
|
--format=gnat
|
|
x__y__m2X
|
|
x.y.m2
|
|
--format=gnat
|
|
x__y__z__rXb
|
|
x.y.z.r
|
|
# Child package
|
|
--format=gnat
|
|
x__y__j
|
|
x.y.j
|
|
# Library level
|
|
--format=gnat
|
|
_ada_x__m3
|
|
x.m3
|
|
# Package body elaborator
|
|
--format=gnat
|
|
p___elabb
|
|
p'Elab_Body
|
|
# Package spec elaborator
|
|
--format=gnat
|
|
p___elabs
|
|
p'Elab_Spec
|
|
# Task body
|
|
--format=gnat
|
|
p__taskobjTKB
|
|
p.taskobj
|
|
# Task subprogram
|
|
--format=gnat
|
|
p__taskobjTK__f1.2330
|
|
p.taskobj.f1
|
|
# Protected types subprograms
|
|
--format=gnat
|
|
prot__lock__getN
|
|
prot.lock.get
|
|
--format=gnat
|
|
prot__lock__getP
|
|
prot.lock.get
|
|
--format=gnat
|
|
prot__lock__get__sub.2590
|
|
prot.lock.get.sub
|
|
--format=gnat
|
|
prot__lock__setN
|
|
prot.lock.set
|
|
--format=gnat
|
|
prot__lock__setP
|
|
prot.lock.set
|
|
# Protected type entries
|
|
--format=gnat
|
|
prot__lock__update_B7s
|
|
prot.lock.update
|
|
--format=gnat
|
|
prot__lock__update_E6s
|
|
prot.lock.update
|
|
# Controlled types
|
|
--format=gnat
|
|
gnat__sockets__sockets_library_controllerDF__2
|
|
gnat.sockets.sockets_library_controller.Finalize
|
|
--format=gnat
|
|
system__partition_interface__racw_stub_typeDA
|
|
system.partition_interface.racw_stub_type.Adjust
|
|
# Stream operations
|
|
--format=gnat
|
|
gnat__wide_wide_string_split__slice_setSR__2
|
|
gnat.wide_wide_string_split.slice_set'Read
|
|
--format=gnat
|
|
ada__real_time__timing_events__events__listSW__2Xnn
|
|
ada.real_time.timing_events.events.list'Write
|
|
--format=gnat
|
|
system__finalization_root__root_controlledSI
|
|
system.finalization_root.root_controlled'Input
|
|
--format=gnat
|
|
ada__finalization__limited_controlledSO__2
|
|
ada.finalization.limited_controlled'Output
|
|
# Tagged types
|
|
--format=gnat
|
|
ada__synchronous_task_control___size__2
|
|
ada.synchronous_task_control'Size
|
|
--format=gnat
|
|
ada__real_time__timing_events__events___alignment__2Xnn
|
|
ada.real_time.timing_events.events'Alignment
|
|
--format=gnat
|
|
system__finalization_root___assign__2
|
|
system.finalization_root.":="
|
|
#
|
|
# Used to crash the demangler.
|
|
--format=gnu-v3
|
|
DFA
|
|
DFA
|
|
#
|
|
# http://sourceware.org/bugzilla/show_bug.cgi?id=11572
|
|
--format=auto
|
|
_ZN3Psi7VariantIIcPKcEE5visitIIRZN11VariantTest9TestVisit11test_methodEvEUlS2_E0_RZNS6_11test_methodEvEUlcE1_RZNS6_11test_methodEvEUlNS_4NoneEE_EEENS_13VariantDetail19SelectVisitorResultIIDpT_EE4typeEDpOSG_
|
|
Psi::VariantDetail::SelectVisitorResult<VariantTest::TestVisit::test_method()::{lambda(char const*)#2}&, VariantTest::TestVisit::test_method()::{lambda(char)#3}&, VariantTest::TestVisit::test_method()::{lambda(Psi::None)#1}&>::type Psi::Variant<char, char const*>::visit<VariantTest::TestVisit::test_method()::{lambda(char const*)#2}&, VariantTest::TestVisit::test_method()::{lambda(char)#3}&, VariantTest::TestVisit::test_method()::{lambda(Psi::None)#1}&>(VariantTest::TestVisit::test_method()::{lambda(char const*)#2}&, VariantTest::TestVisit::test_method()::{lambda(char)#3}&, VariantTest::TestVisit::test_method()::{lambda(Psi::None)#1}&)
|
|
#
|
|
# Clone suffix tests
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fo5n.clone.1
|
|
fo5(__int128) [clone .clone.1]
|
|
fo5
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fo5n.constprop.2
|
|
fo5(__int128) [clone .constprop.2]
|
|
fo5
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fo5n.isra.3
|
|
fo5(__int128) [clone .isra.3]
|
|
fo5
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fo5n.part.4
|
|
fo5(__int128) [clone .part.4]
|
|
fo5
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z12to_be_clonediPv.clone.0
|
|
to_be_cloned(int, void*) [clone .clone.0]
|
|
to_be_cloned
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooi.1988
|
|
foo(int) [clone .1988]
|
|
foo
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooi.part.9.165493.constprop.775.31805
|
|
foo(int) [clone .part.9.165493] [clone .constprop.775.31805]
|
|
foo
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z2f1IiEvT_S0_S0_._omp_fn.2
|
|
void f1<int>(int, int, int) [clone ._omp_fn.2]
|
|
f1<int>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooi._omp_cpyfn.6
|
|
foo(int) [clone ._omp_cpyfn.6]
|
|
foo
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z3fooPfS_S_j.sse4_1.2
|
|
foo(float*, float*, float*, unsigned int) [clone .sse4_1.2]
|
|
foo
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_Z1fIKFvvES0_Evv
|
|
void f<void () const, void () const>()
|
|
f<void () const, void () const>
|
|
#
|
|
--format=gnu-v3
|
|
_ZN4modc6parser8sequenceINS_9astParser13LocatedParserINS0_9ParserRefINS2_UlRNS2_16TokenParserInputEE_EEEEEINS0_14OptionalParserINS2_18ListParserTemplateILNS_6tokens5Token4TypeE4EXadL_ZNSD_Ut_13parenthesizedEEEE6ParserINS4_INS0_6ParserIS5_NS_3ast10ExpressionEEEEEEEEENSA_INS4_INS2_22OneOfKeywordsToTParserINSJ_5StyleEEEEEEENS0_14SequenceParserIS5_INS0_18ExactElementParserIS5_EENSA_ISM_EEEEENS0_14RepeatedParserINS4_INS0_15TransformParserINSU_IS5_INS4_INSP_INSJ_10Annotation12RelationshipEEEEESX_EEENS2_UlNS2_3LocES12_ONS_5MaybeISK_EEE19_EEEEELb0EEEEEENSU_INS0_17ExtractParserTypeIT_E9InputTypeEINS0_8MaybeRefIS1F_E4TypeEDpNS1I_IT0_E4TypeEEEEOS1F_DpOS1L_
|
|
modc::parser::OptionalParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::parser::Parser::Style> > ><modc::parser::ExtractParserType<modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> > >::InputType, modc::parser::MaybeRef<modc::parser::ParserRef<modc::parser::TransformParser<modc::parser::OptionalParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::parser::Parser::Style> > ><modc::astParser::TokenParserInput<modc::parser::ParserRef<modc::parser::OptionalParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::Token::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > > ><modc::parser::Parser::Annotation::Relationship> >, modc::parser::ExactElementParser<modc::astParser::TokenParserInput> > >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser::TransformParser, modc::Maybe<modc::ast>&&)#21}> > >::Type, modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> ><modc::parser::OptionalParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::Token::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > > > >::Type, modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> ><modc::parser::OptionalParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::parser::Parser::Style> > > >::Type, modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> ><modc::parser::SequenceParser<modc::astParser::TokenParserInput<modc::parser::ExactElementParser<modc::astParser::TokenParserInput>, modc::parser::OptionalParser<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > > > >::Type, modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> ><modc::parser::RepeatedParser<modc::parser::ParserRef<modc::parser::TransformParser<modc::parser::OptionalParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::parser::Parser::Style> > ><modc::astParser::TokenParserInput<modc::parser::ParserRef<modc::parser::OptionalParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::Token::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > > ><modc::parser::Parser::Annotation::Relationship> >, modc::parser::ExactElementParser<modc::astParser::TokenParserInput> > >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser::TransformParser, modc::Maybe<modc::ast>&&)#21}> >, false> >::Type> modc::parser::sequence<modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> >, modc::parser::OptionalParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::Token::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > > >, modc::parser::OptionalParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::parser::Parser::Style> > >, modc::parser::SequenceParser<modc::astParser::TokenParserInput<modc::parser::ExactElementParser<modc::astParser::TokenParserInput>, modc::parser::OptionalParser<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > > >, modc::parser::RepeatedParser<modc::parser::ParserRef<modc::parser::TransformParser<modc::parser::OptionalParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::parser::Parser::Style> > ><modc::astParser::TokenParserInput<modc::parser::ParserRef<modc::parser::OptionalParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::Token::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > > ><modc::parser::Parser::Annotation::Relationship> >, modc::parser::ExactElementParser<modc::astParser::TokenParserInput> > >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser::TransformParser, modc::Maybe<modc::ast>&&)#21}> >, false> >(modc::parser::ParserRef<modc::parser::TransformParser<modc::parser::OptionalParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::parser::Parser::Style> > ><modc::astParser::TokenParserInput<modc::parser::ParserRef<modc::parser::OptionalParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::Token::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > > ><modc::parser::Parser::Annotation::Relationship> >, modc::parser::ExactElementParser<modc::astParser::TokenParserInput> > >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser::TransformParser, modc::Maybe<modc::ast>&&)#21}> >&&, (modc::parser::MaybeRef&&)...)
|
|
--format=gnu-v3
|
|
_ZNKR1A1hEv
|
|
A::h() const &
|
|
--format=gnu-v3
|
|
_Z1lM1AKFvvRE
|
|
l(void (A::*)() const &)
|
|
--format=gnu-v3
|
|
_Z1mIFvvOEEvM1AT_
|
|
void m<void () &&>(void (A::*)() &&)
|
|
--format=gnu-v3
|
|
_Z1nIM1AKFvvREEvT_
|
|
void n<void (A::*)() const &>(void (A::*)() const &)
|
|
--format=gnu-v3
|
|
_ZL1fIiEvv
|
|
void f<int>()
|
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c3
|
|
--format=gnu-v3
|
|
_ZSt7forwardIRN1x14refobjiteratorINS0_3refINS0_4mime30multipart_section_processorObjIZ15get_body_parserIZZN14mime_processor21make_section_iteratorERKNS2_INS3_10sectionObjENS0_10ptrrefBaseEEEbENKUlvE_clEvEUlSB_bE_ZZNS6_21make_section_iteratorESB_bENKSC_clEvEUlSB_E0_ENS1_INS2_INS0_20outputrefiteratorObjIiEES8_EEEERKSsSB_OT_OT0_EUlmE_NS3_32make_multipart_default_discarderISP_EEEES8_EEEEEOT_RNSt16remove_referenceISW_E4typeE
|
|
x::refobjiterator<x::ref<x::mime::multipart_section_processorObj<get_body_parser<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}>(std::string const&, x::ref<x::mime::sectionObj, x::ptrrefBase> const&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}&&)::{lambda(unsigned long)#1}, x::mime::make_multipart_default_discarder<get_body_parser<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}>(std::string const&, x::ref<x::mime::sectionObj, x::ptrrefBase> const&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}&&)::{lambda(unsigned long)#1}> >, x::ptrrefBase> >& std::forward<x::refobjiterator<x::ref<x::mime::multipart_section_processorObj<get_body_parser<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}>(std::string const&, x::ref<x::mime::sectionObj, x::ptrrefBase> const&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}&&)::{lambda(unsigned long)#1}, x::mime::make_multipart_default_discarder<get_body_parser<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}>(std::string const&, x::ref<x::mime::sectionObj, x::ptrrefBase> const&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}&&)::{lambda(unsigned long)#1}> >, x::ptrrefBase> >&>(std::remove_reference<x::refobjiterator<x::ref<x::mime::multipart_section_processorObj<get_body_parser<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}>(std::string const&, x::ref<x::mime::sectionObj, x::ptrrefBase> const&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}&&)::{lambda(unsigned long)#1}, x::mime::make_multipart_default_discarder<get_body_parser<mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}>(std::string const&, x::ref<x::mime::sectionObj, x::ptrrefBase> const&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)#1}&&, mime_processor::make_section_iterator(x::ref<x::mime::sectionObj, x::ptrrefBase> const&, bool)::{lambda()#1}::operator()() const::{lambda(x::ref<x::mime::sectionObj, x::ptrrefBase> const&)#2}&&)::{lambda(unsigned long)#1}> >, x::ptrrefBase> >&>::type&)
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZNK7strings8internal8SplitterINS_9delimiter5AnyOfENS_9SkipEmptyEEcvT_ISt6vectorI12basic_stringIcSt11char_traitsIcESaIcEESaISD_EEvEEv
|
|
strings::internal::Splitter<strings::delimiter::AnyOf, strings::SkipEmpty>::operator std::vector<basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<basic_string<char, std::char_traits<char>, std::allocator<char> > > ><std::vector<basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<basic_string<char, std::char_traits<char>, std::allocator<char> > > >, void>() const
|
|
strings::internal::Splitter<strings::delimiter::AnyOf, strings::SkipEmpty>::operator std::vector<basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<basic_string<char, std::char_traits<char>, std::allocator<char> > > ><std::vector<basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<basic_string<char, std::char_traits<char>, std::allocator<char> > > >, void>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN1AcvT_I1CEEv
|
|
A::operator C<C>()
|
|
A::operator C<C>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN1AcvPT_I1CEEv
|
|
A::operator C*<C>()
|
|
A::operator C*<C>
|
|
#
|
|
--format=gnu-v3 --no-params
|
|
_ZN1AcvT_IiEI1CEEv
|
|
A::operator C<int><C>()
|
|
A::operator C<int><C>
|
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c16
|
|
--format=gnu-v3
|
|
_ZN3mdr16in_cached_threadIRZNK4cudr6GPUSet17parallel_for_eachIZN5tns3d20shape_representation7compute7GPUImpl7executeERKNS_1AINS_7ptr_refIKjEELl3ELl3ENS_8c_strideILl1ELl0EEEEERKNS8_INS9_IjEELl4ELl1ESD_EEEUliRKNS1_7ContextERNS7_5StateEE_JSt6vectorISO_SaISO_EEEEEvOT_DpRT0_EUlSP_E_JSt17reference_wrapperISO_EEEENS_12ScopedFutureIDTclfp_spcl7forwardISW_Efp0_EEEEESV_DpOSW_
|
|
mdr::ScopedFuture<decltype ({parm#1}((forward<std::reference_wrapper<tns3d::shape_representation::compute::GPUImpl::State> >)({parm#2})))> mdr::in_cached_thread<cudr::GPUSet::parallel_for_each<tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> > >(tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}&&, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> >&) const::{lambda(tns3d::shape_representation::compute::GPUImpl::State&)#1}&, std::reference_wrapper<tns3d::shape_representation::compute::GPUImpl::State> >(tns3d::shape_representation::compute::GPUImpl::execute(mdr::A<mdr::ptr_ref<unsigned int const>, 3l, 3l, mdr::c_stride<1l, 0l> > const&, mdr::A<mdr::ptr_ref<unsigned int>, 4l, 1l, mdr::c_stride<1l, 0l> > const&)::{lambda(int, cudr::Context const&, tns3d::shape_representation::compute::GPUImpl::State&)#1}&&, std::vector<tns3d::shape_representation::compute::GPUImpl::State, std::allocator<tns3d::shape_representation::compute::GPUImpl::State> >&&)
|
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c18
|
|
--format=gnu-v3
|
|
_ZNSt9_Any_data9_M_accessIPZN13ThreadManager10futureTaskISt5_BindIFSt7_Mem_fnIM6RunnerFvvEEPS5_EEEEvOT_EUlvE_EERSC_v
|
|
ThreadManager::futureTask<std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)> >(std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)>&&)::{lambda()#1}*& std::_Any_data::_M_access<ThreadManager::futureTask<std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)> >(ThreadManager::futureTask<std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)> >(std::_Bind<std::_Mem_fn<void (Runner::*)()> (Runner*)>&&)::{lambda()#1}*&&)::{lambda()#1}*>()
|
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=14963#c24
|
|
# aka https://sourceware.org/bugzilla/show_bug.cgi?id=16593
|
|
--format=gnu-v3
|
|
_ZNSt9_Any_data9_M_accessIPZN3sel8Selector6SetObjI3FooJPKcMS4_FviEEEEvRT_DpT0_EUlvE_EESA_v
|
|
sel::Selector::SetObj<Foo, char const*, void (Foo::*)(int)>(Foo&, char const*, void (Foo::*)(int))::{lambda()#1}*& std::_Any_data::_M_access<sel::Selector::SetObj<Foo, char const*, void (Foo::*)(int)>(sel::Selector::SetObj<Foo, char const*, void (Foo::*)(int)>(Foo&, char const*, void (Foo::*)(int))::{lambda()#1}*&, char const*, void (Foo::*)(int))::{lambda()#1}*>()
|
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=16752#c1
|
|
--format=gnu-v3
|
|
_ZNSt9_Any_data9_M_accessIPZN13ThreadManager7newTaskIRSt5_BindIFSt7_Mem_fnIM5DiaryFivEEPS5_EEIEEESt6futureINSt9result_ofIFT_DpT0_EE4typeEEOSF_DpOSG_EUlvE_EERSF_v
|
|
ThreadManager::newTask<std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&>(std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&)::{lambda()#1}*& std::_Any_data::_M_access<ThreadManager::newTask<std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&>(ThreadManager::newTask<std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&>(std::_Bind<std::_Mem_fn<int (Diary::*)()> (Diary*)>&)::{lambda()#1}*&&)::{lambda()#1}*>()
|
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=16752#c6
|
|
--format=gnu-v3
|
|
_ZNSt9_Any_data9_M_accessIPZN6cereal18polymorphic_detail15getInputBindingINS1_16JSONInputArchiveEEENS1_6detail15InputBindingMapIT_E11SerializersERS7_jEUlPvRSt10unique_ptrIvNS5_12EmptyDeleterIvEEEE0_EESA_v
|
|
cereal::polymorphic_detail::getInputBinding<cereal::JSONInputArchive>(cereal::JSONInputArchive&, unsigned int)::{lambda(void*, std::unique_ptr<void, cereal::detail::EmptyDeleter<void> >&)#2}*& std::_Any_data::_M_access<cereal::polymorphic_detail::getInputBinding<cereal::JSONInputArchive>(cereal::polymorphic_detail::getInputBinding<cereal::JSONInputArchive>(cereal::JSONInputArchive&, unsigned int)::{lambda(void*, std::unique_ptr<void, cereal::detail::EmptyDeleter<void> >&)#2}*&, unsigned int)::{lambda(void*, std::unique_ptr<void, cereal::detail::EmptyDeleter<void> >&)#2}*>()
|
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=16845#c2
|
|
--format=gnu-v3
|
|
_ZNSt9_Any_data9_M_accessIPZ4postISt8functionIFvvEEEvOT_EUlvE_EERS5_v
|
|
post<std::function<void ()> >(std::function<void ()>&&)::{lambda()#1}*& std::_Any_data::_M_access<post<std::function<void ()> >(post<std::function<void ()> >(std::function<void ()>&&)::{lambda()#1}*&&)::{lambda()#1}*>()
|
|
#
|
|
--format=auto --no-params
|
|
_Z3xxxDF16_DF32_DF64_DF128_CDF16_Vb
|
|
xxx(_Float16, _Float32, _Float64, _Float128, _Float16 _Complex, bool volatile)
|
|
xxx
|
|
--format=auto --no-params
|
|
_Z3xxxDF32xDF64xDF128xCDF32xVb
|
|
xxx(_Float32x, _Float64x, _Float128x, _Float32x _Complex, bool volatile)
|
|
xxx
|
|
--format=auto --no-params
|
|
_Z3xxxDF16b
|
|
xxx(std::bfloat16_t)
|
|
xxx
|
|
# https://sourceware.org/bugzilla/show_bug.cgi?id=16817
|
|
--format=auto --no-params
|
|
_QueueNotification_QueueController__$4PPPPPPPM_A_INotice___Z
|
|
_QueueNotification_QueueController__$4PPPPPPPM_A_INotice___Z
|
|
_QueueNotification_QueueController__$4PPPPPPPM_A_INotice___Z
|
|
--format=gnu-v3
|
|
_Z1fSsB3fooS_
|
|
f(std::string[abi:foo], std::string[abi:foo])
|
|
--format=gnu-v3
|
|
_Z18IndirectExternCallIPU7stdcallU7regparmILi3EEFviiEiEvT_T0_S3_
|
|
void IndirectExternCall<void ( regparm<3> stdcall*)(int, int), int>(void ( regparm<3> stdcall*)(int, int), int, void ( regparm<3> stdcall*)(int, int))
|
|
#
|
|
# ABI tags used to confuse the constructor name calculation.
|
|
--format=gnu-v3 --no-params
|
|
_ZNSt8ios_base7failureB5cxx11C1EPKcRKSt10error_code
|
|
std::ios_base::failure[abi:cxx11]::failure(char const*, std::error_code const&)
|
|
std::ios_base::failure[abi:cxx11]::failure
|
|
--format=gnu-v3
|
|
_Z1fPDxFvvES0_
|
|
f(void (*)() transaction_safe, void (*)() transaction_safe)
|
|
#
|
|
# These two are from gcc PR61321, and gcc PR61233 / gdb PR16957
|
|
#
|
|
--format=gnu-v3
|
|
_Z13function_tempIiEv1AIXszcvT_Li999EEE
|
|
void function_temp<int>(A<sizeof ((int)(999))>)
|
|
#
|
|
--format=gnu-v3
|
|
_Z7ZipWithI7QStringS0_5QListZN4oral6detail16AdaptCreateTableI7AccountEES0_RKNS3_16CachedFieldsDataEEUlRKS0_SA_E_ET1_IDTclfp1_cvT__EcvT0__EEEERKT1_ISC_ERKT1_ISD_ET2_
|
|
QList<decltype ({parm#3}((QString)(), (QString)()))> ZipWith<QString, QString, QList, oral::detail::AdaptCreateTable<Account>(oral::detail::CachedFieldsData const&)::{lambda(QString const&, QString const&)#1}>(QList<QList> const&, QList<QString> const&, oral::detail::AdaptCreateTable<Account>(oral::detail::CachedFieldsData const&)::{lambda(QString const&, QString const&)#1})
|
|
#
|
|
# These three are symbols generated by g++'s testsuite, which triggered the same bug as above.
|
|
--format=gnu-v3
|
|
_Z14int_if_addableI1YERiP1AIXszpldecvPT_Li0EdecvS4_Li0EEE
|
|
int& int_if_addable<Y>(A<sizeof ((*((Y*)(0)))+(*((Y*)(0))))>*)
|
|
#
|
|
--format=gnu-v3
|
|
_Z3bazIiEvP1AIXszcl3foocvT__ELCf00000000_00000000EEEE
|
|
void baz<int>(A<sizeof (foo((int)(), (float _Complex)00000000_00000000))>*)
|
|
#
|
|
--format=gnu-v3
|
|
_Z3fooI1FEN1XIXszdtcl1PclcvT__EEE5arrayEE4TypeEv
|
|
X<sizeof ((P(((F)())())).array)>::Type foo<F>()
|
|
|
|
_Z1fIJidEEv1AIXsZT_EE
|
|
void f<int, double>(A<2>)
|
|
|
|
_ZN1A1fIJiiEiJiiiEEEvRAsPDpT_T0_DpT1_E_iS3_S5_
|
|
void A::f<int, int, int, int, int, int>(int (&) [6], int, int, int, int)
|
|
|
|
_Z10unary_leftIJLi1ELi2ELi3EEEv1AIXflplT_EE
|
|
void unary_left<1, 2, 3>(A<(...+(1, 2, 3))>)
|
|
|
|
_Z11unary_rightIJLi1ELi2ELi3EEEv1AIXfrplT_EE
|
|
void unary_right<1, 2, 3>(A<((1, 2, 3)+...)>)
|
|
|
|
_Z11binary_leftIJLi1ELi2ELi3EEEv1AIXfLplLi42ET_EE
|
|
void binary_left<1, 2, 3>(A<((42)+...+(1, 2, 3))>)
|
|
|
|
_Z12binary_rightIJLi1ELi2ELi3EEEv1AIXfRplT_Li42EEE
|
|
void binary_right<1, 2, 3>(A<((1, 2, 3)+...+(42))>)
|
|
# Inheriting constructor
|
|
|
|
_ZN1DCI11BEi
|
|
D::B(int)
|
|
# exception-specification (C++17)
|
|
|
|
_Z1fIvJiELb0EEvPDOT1_EFT_DpT0_E
|
|
void f<void, int, false>(void (*)(int) noexcept(false))
|
|
|
|
_Z1fIvJiELb0EEvPDoFT_DpT0_E
|
|
void f<void, int, false>(void (*)(int) noexcept)
|
|
|
|
_Z1fIvJiELb0EEvPDwiEFT_DpT0_E
|
|
void f<void, int, false>(void (*)(int) throw(int))
|
|
|
|
# fold-expression with missing third component could crash.
|
|
_Z12binary_rightIJLi1ELi2ELi3EEEv1AIXfRplT_LiEEE
|
|
_Z12binary_rightIJLi1ELi2ELi3EEEv1AIXfRplT_LiEEE
|
|
|
|
# ?: expression with missing third component could crash.
|
|
AquT_quT_4mxautouT_4mxxx
|
|
AquT_quT_4mxautouT_4mxxx
|
|
|
|
# pr c++/78252 generic lambda mangling uses template parms, and leads
|
|
# to unbounded recursion if not dealt with properly
|
|
_Z7forwardIRZ3FoovEUlRT_E_EOS0_S1_
|
|
Foo()::{lambda(auto:1&)#1}& forward<Foo()::{lambda(auto:1&)#1}&>(Foo()::{lambda(auto:1&)#1}&)
|
|
|
|
_Z7forwardIZ3FoovEUlRiRT_E_EOS1_S2_
|
|
Foo()::{lambda(int&, auto:1&)#1}&& forward<Foo()::{lambda(int&, auto:1&)#1}>(Foo()::{lambda(int&, auto:1&)#1}&)
|
|
|
|
_Z7forwardIZ3FoovEUlRT_R1XIiEE0_EOS0_S1_
|
|
Foo()::{lambda(auto:1&, X<int>&)#2}&& forward<Foo()::{lambda(auto:1&, X<int>&)#2}>(Foo()::{lambda(auto:1&, X<int>&)#2}&)
|
|
|
|
_Z7forwardIZ3FoovEUlPA5_T_E1_EOS0_RS0_
|
|
Foo()::{lambda(auto:1 (*&&forward<Foo()::{lambda(auto:1 (*) [5])#3}>(auto:1&)) [5])#3}
|
|
|
|
_Z3eatIZ3FoovEUlRiRT_E_EvS2_
|
|
void eat<Foo()::{lambda(int&, auto:1&)#1}>(Foo()::{lambda(int&, auto:1&)#1}&)
|
|
|
|
_Z3eatIZ3FoovEUlRT_R1XIiEE0_EvS1_
|
|
void eat<Foo()::{lambda(auto:1&, X<int>&)#2}>(Foo()::{lambda(auto:1&, X<int>&)#2}&)
|
|
|
|
_Z3eatIZ3FoovEUlPA5_T_E1_EvRS0_
|
|
void eat<Foo()::{lambda(auto:1 (*) [5])#3}>(Foo()::{lambda(auto:1 (*&) [5])#3})
|
|
|
|
_Z3eatIPiZ3FoovEUlPT_PT0_E4_EvRS1_RS3_
|
|
void eat<int*, Foo()::{lambda(auto:1*, auto:2*)#6}>(int*&, Foo()::{lambda(auto:1*, auto:2*)#6}&)
|
|
|
|
_Z3eatIPiZ3BarIsEvvEUlPsPT_PT0_E0_EvRS3_RS5_
|
|
void eat<int*, Bar<short>()::{lambda(short*, auto:1*, auto:2*)#2}>(int*&, Bar<short>()::{lambda(short*, auto:1*, auto:2*)#2}&)
|
|
|
|
_Z1fP1BIXtl1ALi1EEEE
|
|
f(B<A{1}>*)
|
|
|
|
_ZTAXtl1ALi1EEE
|
|
template parameter object for A{1}
|
|
|
|
# PR 77489
|
|
_ZZ3foovE8localVar_9
|
|
foo()::localVar
|
|
|
|
_ZZ3foovE8localVar_10
|
|
foo()::localVar
|
|
|
|
_ZZ3foovE8localVar__10_
|
|
foo()::localVar
|
|
|
|
_ZZ3foovE8localVar__9_
|
|
_ZZ3foovE8localVar__9_
|
|
|
|
_ZZ3foovE8localVar__12
|
|
_ZZ3foovE8localVar__12
|
|
|
|
# PR 70182
|
|
_Z1gI1AEv1SIXadsrT_onplEE
|
|
void g<A>(S<&A::operator+>)
|
|
|
|
_Z1gI1AEv1SIXadsrT_plEE
|
|
void g<A>(S<&A::operator+>)
|
|
|
|
#
|
|
# Test recursion PR67264
|
|
_Z1KIStcvT_E
|
|
_Z1KIStcvT_E
|
|
|
|
_ZcvT_IIS0_EE
|
|
_ZcvT_IIS0_EE
|
|
|
|
_ZcvT_IZcvT_E1fE
|
|
_ZcvT_IZcvT_E1fE
|
|
|
|
_Z1gINcvT_EE
|
|
_Z1gINcvT_EE
|
|
|
|
_ZcvT_ILZcvDTT_EEE
|
|
_ZcvT_ILZcvDTT_EEE
|
|
|
|
_Z1gIJOOT_EEOT_c
|
|
_Z1gIJOOT_EEOT_c
|
|
|
|
_Z1KMMMMMMMMMMMMMMMA_xooooooooooooooo
|
|
_Z1KMMMMMMMMMMMMMMMA_xooooooooooooooo
|
|
|
|
_ZdvMMMMMMMMMMMMMrrrrA_DTdvfp_fp_Eededilfdfdfdfd
|
|
_ZdvMMMMMMMMMMMMMrrrrA_DTdvfp_fp_Eededilfdfdfdfd
|
|
#
|
|
# Test for Infinite Recursion PR70909
|
|
|
|
_Z1MA_aMMMMA_MMA_MMMMMMMMSt1MS_o11T0000000000t2M0oooozoooo
|
|
_Z1MA_aMMMMA_MMA_MMMMMMMMSt1MS_o11T0000000000t2M0oooozoooo
|
|
#
|
|
# demangler/80513 Test for overflow in d_number
|
|
|
|
_Z4294967297x
|
|
_Z4294967297x
|
|
#
|
|
# demangler/82195 members of lambdas
|
|
--no-params
|
|
_ZZZ3FoovENKUlT_E_clIiEEfS_EN5Local2fnEv
|
|
Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::Local::fn()
|
|
Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::Local::fn
|
|
--no-params
|
|
_Z7CaptureIZZ3FoovENKUlT_E_clIiEEvS0_EUlvE_EvOS0_
|
|
void Capture<Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>(Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}&&)
|
|
Capture<Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>
|
|
--no-params
|
|
_Z4FrobIZZ3FoovENKUlT_E_clIiEEvS0_EUlvE_Evv
|
|
void Frob<Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>()
|
|
Frob<Foo()::{lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>
|
|
# A lambda {local-class::member-fn}
|
|
--no-params
|
|
_ZZ3FoovENKUlT_E_clIiEEfS_
|
|
float Foo()::{lambda(auto:1)#1}::operator()<int>(int) const
|
|
Foo()::{lambda(auto:1)#1}::operator()<int>
|
|
# template-fn {local-class::member-fn}
|
|
--no-params
|
|
_ZZ3FooIiEfvEN1X2fnEv
|
|
Foo<int>()::X::fn()
|
|
Foo<int>()::X::fn
|
|
# template-fn generic-lambda local-class::member-fn
|
|
--no-params
|
|
_ZZZ3FooIiEfvENKUlT_E_clIcEEDaS0_EN1X2fnEv
|
|
Foo<int>()::{lambda(auto:1)#1}::operator()<char>(char) const::X::fn()
|
|
Foo<int>()::{lambda(auto:1)#1}::operator()<char>(char) const::X::fn
|
|
#PR91979 demangling nullptr expression
|
|
|
|
_Z3fooILPv0EEvPN9enable_ifIXeqT_LDnEEvE4typeE
|
|
void foo<(void*)0>(enable_if<((void*)0)==(decltype(nullptr)), void>::type*)
|
|
|
|
_ZNK5coro15emptyawEv
|
|
coro1::empty::operator co_await() const
|
|
|
|
_ZNK3FoossERKS_
|
|
Foo::operator<=>(Foo const&) const
|
|
|
|
_Z1f1AIXtl1Udi1iLi0EEEE
|
|
f(A<U{.i=(0)}>)
|
|
|
|
_Z1f1AIXtl1Xdi1adi1bdxLi3ELi1EEEE
|
|
f(A<X{.a.b[3]=(1)}>)
|
|
|
|
_Z1f1AIXtl1Xdi1adi1bdXLi3ELi4ELi1EEEE
|
|
f(A<X{.a.b[3 ... 4]=(1)}>)
|
|
|
|
# PR 96143
|
|
_Z2F2IZ1FvEUlvE_EN1AIT_E1XES2_
|
|
A<F()::{lambda()#1}>::X F2<F()::{lambda()#1}>(F()::{lambda()#1})
|
|
|
|
# PR 88115
|
|
_Z1fIiEvDTu11__alignof__T_EE
|
|
void f<int>(decltype (__alignof__(int)))
|
|
|
|
_Z1fIiEvDTu11__alignof__XtlT_EEEE
|
|
void f<int>(decltype (__alignof__(int{})))
|
|
|
|
_Z1gI1AEv1SIXadsrT_oncviEE
|
|
void g<A>(S<&A::operator int>)
|
|
|
|
_Z1jI1AEDTcldtfp_oncvPT_EES1_
|
|
decltype (({parm#1}.(operator A*))()) j<A>(A)
|
|
|
|
_Z1fI1AEDtdtfp_srT_1xES1_
|
|
decltype ({parm#1}.A::x) f<A>(A)
|
|
|
|
_Z2f6IP1AEDtptfp_gssr1A1BE1xET_
|
|
decltype ({parm#1}->(::A::B::x)) f6<A*>(A*)
|
|
|
|
# Structured Bindings
|
|
_ZDC1a1bE
|
|
[a, b]
|
|
|
|
_ZNStDC1aEE
|
|
std::[a]
|
|
|
|
_ZN3NMSDC1aEE
|
|
NMS::[a]
|
|
|
|
# Modules
|
|
_ZN5Outer5InnerW3FOO2FnERNS0_1XE
|
|
Outer::Inner::Fn@FOO(Outer::Inner::X&)
|
|
|
|
_ZN5OuterW3FOO5Inner2FnERNS1_1XE
|
|
Outer::Inner@FOO::Fn(Outer::Inner@FOO::X&)
|
|
|
|
_ZN4Quux4TotoW3FooW3Bar3BazEPNS0_S2_5PlughE
|
|
Quux::Toto::Baz@Foo.Bar(Quux::Toto::Plugh@Foo.Bar*)
|
|
|
|
_ZW6Module1fNS_1a1bENS0_1cE
|
|
f@Module(a@Module::b, a@Module::c)
|
|
|
|
_ZN3BobW3FOOW3BAR3BarEPS1_1APNS_S1_1BE
|
|
Bob::Bar@FOO.BAR(A@FOO.BAR*, Bob::B@FOO.BAR*)
|
|
|
|
_ZW3FOOW3BAR3FooPS0_1APN3BobS0_1BE
|
|
Foo@FOO.BAR(A@FOO.BAR*, Bob::B@FOO.BAR*)
|
|
|
|
_ZN3BobW3FOOW3BAZ3FooEPS0_W3BAR1APNS_S2_1BE
|
|
Bob::Foo@FOO.BAZ(A@FOO.BAR*, Bob::B@FOO.BAR*)
|
|
|
|
_ZW3FOOW3BAZ3BarPS_W3BAR1APN3BobS1_1BE
|
|
Bar@FOO.BAZ(A@FOO.BAR*, Bob::B@FOO.BAR*)
|
|
|
|
_ZNW3FOO3TPLIS_3OneE1MEPS1_
|
|
TPL@FOO<One@FOO>::M(One@FOO*)
|
|
|
|
_ZNW3FOO3TPLIS_3OneE1NIS_3TwoEEvPS1_PT_
|
|
void TPL@FOO<One@FOO>::N<Two@FOO>(One@FOO*, Two@FOO*)
|
|
|
|
_ZN3NMSW3FOO3TPLINS_S0_3OneEE1MEPS2_
|
|
NMS::TPL@FOO<NMS::One@FOO>::M(NMS::One@FOO*)
|
|
|
|
_ZN3NMSW3FOO3TPLINS_S0_3OneEE1NINS_S0_3TwoEEEvPS2_PT_
|
|
void NMS::TPL@FOO<NMS::One@FOO>::N<NMS::Two@FOO>(NMS::One@FOO*, NMS::Two@FOO*)
|
|
|
|
_ZNStW3STD9allocatorIiE1MEPi
|
|
std::allocator@STD<int>::M(int*)
|
|
|
|
_ZNStW3STD9allocatorIiE1NIfEEPT_Pi
|
|
float* std::allocator@STD<int>::N<float>(int*)
|
|
|
|
_ZNStW3STD9allocatorI4PoohE1MEPS1_
|
|
std::allocator@STD<Pooh>::M(Pooh*)
|
|
|
|
_ZNStW3STD9allocatorI4PoohE1NI6PigletEEPT_PS1_
|
|
Piglet* std::allocator@STD<Pooh>::N<Piglet>(Pooh*)
|
|
|
|
_ZW3FooDC1a1bE
|
|
[a, b]@Foo
|
|
|
|
_ZN1NW3FooDC1a1bEE
|
|
N::[a, b]@Foo
|
|
|
|
_ZN3NMSW3MOD3FooB3ABIEv
|
|
NMS::Foo@MOD[abi:ABI]()
|
|
|
|
_ZGIW3Foo
|
|
initializer for module Foo
|
|
|
|
_ZGIW3FooW3Bar
|
|
initializer for module Foo.Bar
|
|
|
|
_ZGIW3FooWP3BarW3Baz
|
|
initializer for module Foo:Bar.Baz
|
|
|
|
_ZZ2L1vENKUlDpT_E_clIJiPiEEEvS0_
|
|
void L1()::{lambda((auto:1)...)#1}::operator()<int, int*>(int, int*) const
|
|
|
|
_ZZ2L1vENKUlDpT_E_clIJiPiEEEDaS0_
|
|
auto L1()::{lambda((auto:1)...)#1}::operator()<int, int*>(int, int*) const
|
|
|
|
_Z7captureIN4gvarMUlvE_EE7WrapperIT_EOS3_
|
|
Wrapper<gvar::{lambda()#1}> capture<gvar::{lambda()#1}>(gvar::{lambda()#1}&&)
|
|
|
|
_ZNK2L2MUlT_T0_E_clIifEEvS_S0_
|
|
void L2::{lambda(auto:1, auto:2)#1}::operator()<int, float>(L2, int) const
|
|
|
|
_ZNK1C1fMUlT_E_clIMS_iEEDaS1_
|
|
auto C::f::{lambda(auto:1)#1}::operator()<int C::*>(int C::*) const
|
|
|
|
_ZNK2L2MUlT_T0_E_clIifEEvS0_S1_
|
|
void L2::{lambda(auto:1, auto:2)#1}::operator()<int, float>(int, float) const
|
|
|
|
_ZNK1B2L3MUlT_T0_E_clIjdEEvS1_S2_
|
|
void B::L3::{lambda(auto:1, auto:2)#1}::operator()<unsigned int, double>(unsigned int, double) const
|
|
|
|
_Z3fooIN1qMUlvE_ENS0_UlvE0_EEiOT_OT0_
|
|
int foo<q::{lambda()#1}, q::{lambda()#2}>(q::{lambda()#1}&&, q::{lambda()#2}&&)
|
|
|
|
_ZNK2L1MUlDpT_E_clIJiPiEEEvS1_
|
|
void L1::{lambda((auto:1)...)#1}::operator()<int, int*>(int, int*) const
|
|
|
|
_ZZN1XIfLj0EE2FnEvENKUlTyfT_E_clIiEEDafS1_
|
|
auto X<float, 0u>::Fn()::{lambda<typename $T0>(float, $T0)#1}::operator()<int>(float, int) const
|
|
|
|
_ZZN1XIfLj0EE2FnEvENKUlTyT_E_clIiEEDaS1_
|
|
auto X<float, 0u>::Fn()::{lambda<typename $T0>($T0)#1}::operator()<int>(int) const
|
|
|
|
_ZZN1XIfLj1EE2FnEvENKUlTyfT_E_clIiEEDafS1_
|
|
auto X<float, 1u>::Fn()::{lambda<typename $T0>(float, $T0)#1}::operator()<int>(float, int) const
|
|
|
|
_ZZN1XIfLj1EE2FnEvENKUlTyT_E_clIiEEDaS1_
|
|
auto X<float, 1u>::Fn()::{lambda<typename $T0>($T0)#1}::operator()<int>(int) const
|
|
|
|
_ZZN1XIiLj0EE2FnEvENKUlTyiT_E_clIiEEDaiS1_
|
|
auto X<int, 0u>::Fn()::{lambda<typename $T0>(int, $T0)#1}::operator()<int>(int, int) const
|
|
|
|
_ZZN1XIiLj0EE2FnEvENKUlTyT_E_clIiEEDaS1_
|
|
auto X<int, 0u>::Fn()::{lambda<typename $T0>($T0)#1}::operator()<int>(int) const
|
|
|
|
_ZNK10l_tpl_autoMUlTyT_T0_E_clIiiEEDaS0_S1_
|
|
auto l_tpl_auto::{lambda<typename $T0>($T0, auto:2)#1}::operator()<int, int>(int, int) const
|
|
|
|
_ZNK12l_tpl_nt_aryMUlTniRAT__iE_clILi2EEEDaS1_
|
|
auto l_tpl_nt_ary::{lambda<int $N0>(int (&) [$N0])#1}::operator()<2>(int (&) [2]) const
|
|
|
|
_ZNK13l_tpl_nt_autoMUlTnDavE_clILi0EEEDav
|
|
auto l_tpl_nt_auto::{lambda<auto $N0>()#1}::operator()<0>() const
|
|
|
|
_ZNK9l_tpl_tplMUlTtTyTnjER3TPLIT_EE_clI1UEEDaS3_
|
|
auto l_tpl_tpl::{lambda<template<typename, unsigned int> class $TT0>(TPL<$TT0>&)#1}::operator()<U>(TPL<U>&) const
|
|
|
|
_ZNK13l_tpl_tpl_tplMUlTtTtTyTnjEER6TPLTPLIT_EE_clI3TPLEEDaS3_
|
|
auto l_tpl_tpl_tpl::{lambda<template<template<typename, unsigned int> class> class $TT0>(TPLTPL<$TT0>&)#1}::operator()<TPL>(TPLTPL<TPL>&) const
|
|
|
|
_ZNK5l_varMUlTpTyDpT_E_clIJiiiEEEDaS1_
|
|
auto l_var::{lambda<typename... $T0>(($T0)...)#1}::operator()<int, int, int>(int, int, int) const
|
|
|
|
_ZNK6l_var2MUlTpTniDpRAT__iE_clIJLi2ELi2EEEEDaS2_
|
|
auto l_var2::{lambda<int... $N0>((int (&) [$N0])...)#1}::operator()<2, 2>(int (&) [2], int (&) [2]) const
|
|
|
|
_ZNK6l_var3MUlTtTpTniETpTniRT_IJXspT0_EEEE_clI1XJLi1ELi2ELi3EEEEDaS2_
|
|
auto l_var3::{lambda<template<int...> class $TT0, int... $N1>($TT0<($N1)...>&)#1}::operator()<X, 1, 2, 3>(X<1, 2, 3>&) const
|
|
|
|
_ZNK6l_var4MUlTpTtTyTnjER1YIJDpT_EEE_clIJ1US7_EEEDaS4_
|
|
auto l_var4::{lambda<template<typename, unsigned int> class... $TT0>(Y<($TT0)...>&)#1}::operator()<U, U>(Y<U, U>&) const
|
|
|
|
_ZZ2FnILi1EEvvENKUlTyT_E_clIiEEDaS0_
|
|
auto Fn<1>()::{lambda<typename $T0>($T0)#1}::operator()<int>(int) const
|
|
|
|
_ZZ1fvENKUlTyP1XIT_EPS_IiEE_clIcEEDaS2_S4_
|
|
auto f()::{lambda<typename $T0>(X<$T0>*, X<int>*)#1}::operator()<char>(X<char>*, X<int>*) const
|
|
|
|
_ZZN1XIiE1FEvENKUliE_clEi
|
|
X<int>::F()::{lambda(int)#1}::operator()(int) const
|
|
|
|
_Z1fIiEv1AIXnxtlT_EEE
|
|
void f<int>(A<noexcept(int{})>)
|
|
|
|
_ZNO1Ycv1XEv
|
|
Y::operator X() &&
|
|
|
|
_ZNO1Ycv1XIT_EIvEEv
|
|
Y::operator X<void><void>() &&
|
|
|
|
_ZNO1Y3bobEv
|
|
Y::bob() &&
|
|
|
|
_ZNR1Y3bobEv
|
|
Y::bob() &
|
|
|
|
_ZNKR1YcvRK1XIT_EIvEEv
|
|
Y::operator X<void> const&<void>() const &
|
|
|
|
_ZZN1XIiEcviEvE1y
|
|
X<int>::operator int()::y
|
|
|
|
_ZZN1XIiEcv1ZIiEEvE1y
|
|
X<int>::operator Z<int>()::y
|
|
|
|
_ZZN1Xcv1ZIT_EIiEEvE1y
|
|
X::operator Z<int><int>()::y
|
|
|
|
_ZZN1XIfEcv1ZIT_EIiEEvE1y
|
|
X<float>::operator Z<int><int>()::y
|
|
|
|
_ZN1SILi1EEF3barIiEEiR4Base
|
|
int S<1>::bar[friend]<int>(Base&)
|
|
|
|
# requires on template-head
|
|
_Z1fIiQ1CIT_EEvv
|
|
void f<int>() requires C<int>
|
|
|
|
# requires after ()
|
|
_Z1fIiEvvQ1CIT_E
|
|
void f<int>() requires C<int>
|
|
|
|
_ZNH1S3fooES_
|
|
S::foo(this S)
|
|
|
|
_ZNH1S3barILi5EiEEvS_T0_
|
|
void S::bar<5, int>(this S, int)
|
|
|
|
_ZNH1S3bazERKS_
|
|
S::baz(this S const&)
|
|
|
|
_Z3fooUlvE_
|
|
foo({lambda()#1})
|
|
|
|
# P2115R0 unnamed enums
|
|
_Z3fooUei1ES_
|
|
foo({enum:int{E}}, {enum:int{E}})
|