OLD | NEW |
1 # This file holds test cases for the demangler. | 1 # This file holds test cases for the demangler. |
2 # Each test case looks like this: | 2 # Each test case looks like this: |
3 # options | 3 # options |
4 # input to be demangled | 4 # input to be demangled |
5 # expected output | 5 # expected output |
6 # | 6 # |
7 # Supported options: | 7 # Supported options: |
8 # --format=<name> Sets the demangling style. | 8 # --format=<name> Sets the demangling style. |
9 # --no-params There are two lines of expected output; the first | 9 # --no-params There are two lines of expected output; the first |
10 # is with DMGL_PARAMS, the second is without it. | 10 # is with DMGL_PARAMS, the second is without it. |
(...skipping 3917 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3928 # test for typed function in decltype | 3928 # test for typed function in decltype |
3929 --format=gnu-v3 | 3929 --format=gnu-v3 |
3930 _ZN1AIiE1jIiEEDTplfp_clL_Z1xvEEET_ | 3930 _ZN1AIiE1jIiEEDTplfp_clL_Z1xvEEET_ |
3931 decltype ({parm#1}+(x())) A<int>::j<int>(int) | 3931 decltype ({parm#1}+(x())) A<int>::j<int>(int) |
3932 # typed function in decltype with an argument list | 3932 # typed function in decltype with an argument list |
3933 --format=gnu-v3 | 3933 --format=gnu-v3 |
3934 _Z1tIlEDTplcvT_Li5EclL_Z1qsELi6EEEv | 3934 _Z1tIlEDTplcvT_Li5EclL_Z1qsELi6EEEv |
3935 decltype (((long)(5))+(q(6))) t<long>() | 3935 decltype (((long)(5))+(q(6))) t<long>() |
3936 # test for expansion of function parameter pack | 3936 # test for expansion of function parameter pack |
3937 --format=gnu-v3 | 3937 --format=gnu-v3 |
3938 _Z1gIIidEEDTclL_Z1fEspplfp_Li1EEEDpT_ | 3938 _Z1gIJidEEDTclL_Z1fEspplfp_Li1EEEDpT_ |
3939 decltype (f(({parm#1}+(1))...)) g<int, double>(int, double) | 3939 decltype (f(({parm#1}+(1))...)) g<int, double>(int, double) |
3940 # lambda tests | 3940 # lambda tests |
3941 --format=gnu-v3 | 3941 --format=gnu-v3 |
3942 _ZZ1giENKUlvE_clEv | 3942 _ZZ1giENKUlvE_clEv |
3943 g(int)::{lambda()#1}::operator()() const | 3943 g(int)::{lambda()#1}::operator()() const |
3944 --format=gnu-v3 | 3944 --format=gnu-v3 |
3945 _Z4algoIZ1giEUlvE0_EiT_ | 3945 _Z4algoIZ1giEUlvE0_EiT_ |
3946 int algo<g(int)::{lambda()#2}>(g(int)::{lambda()#2}) | 3946 int algo<g(int)::{lambda()#2}>(g(int)::{lambda()#2}) |
3947 --format=gnu-v3 | 3947 --format=gnu-v3 |
3948 _ZZN1S1fEiiEd0_NKUlvE0_clEv | 3948 _ZZN1S1fEiiEd0_NKUlvE0_clEv |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4011 K<1, &S::m>::f() | 4011 K<1, &S::m>::f() |
4012 # Here the `(int)' argument list of `S::m' is already removed. | 4012 # Here the `(int)' argument list of `S::m' is already removed. |
4013 --format=gnu-v3 | 4013 --format=gnu-v3 |
4014 _ZN1KILi1EXadL_ZN1S1mEEEE1fEv | 4014 _ZN1KILi1EXadL_ZN1S1mEEEE1fEv |
4015 K<1, &S::m>::f() | 4015 K<1, &S::m>::f() |
4016 # | 4016 # |
4017 # Used to crash -- binutils PR 13030. | 4017 # Used to crash -- binutils PR 13030. |
4018 --format=gnu-v3 | 4018 --format=gnu-v3 |
4019 _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_ | 4019 _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_ |
4020 _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_ | 4020 _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_ |
| 4021 # A pack expansion is substitutable. |
| 4022 --format=gnu-v3 |
| 4023 _Z1fIJiEiEv1AIJDpT_EET0_S4_ |
| 4024 void f<int, int>(A<int>, int, int) |
| 4025 # So is decltype. |
| 4026 --format=gnu-v3 |
| 4027 _Z1fIiiEDTcvT__EET0_S2_ |
| 4028 decltype ((int)()) f<int, int>(int, int) |
| 4029 # And vector. |
| 4030 --format=gnu-v3 |
| 4031 _Z1fDv4_iS_ |
| 4032 f(int __vector(4), int __vector(4)) |
| 4033 --format=gnu-v3 |
| 4034 _Z2f1Ii1AEDTdsfp_fp0_ET0_MS2_T_ |
| 4035 decltype ({parm#1}.*{parm#2}) f1<int, A>(A, int A::*) |
| 4036 --format=gnu-v3 |
| 4037 _Z2f2IiEDTquL_Z1bEfp_trET_ |
| 4038 decltype (b?{parm#1} : (throw)) f2<int>(int) |
| 4039 --format=gnu-v3 |
| 4040 _Z6check1IiEvP6helperIXsznw_T_EEE |
| 4041 void check1<int>(helper<sizeof (new int)>*) |
| 4042 --format=gnu-v3 |
| 4043 _Z6check2IiEvP6helperIXszgsnw_T_piEEE |
| 4044 void check2<int>(helper<sizeof (::new int())>*) |
| 4045 --format=gnu-v3 |
| 4046 _Z6check3IiEvP6helperIXsznwadL_Z1iE_T_piLi1EEEE |
| 4047 void check3<int>(helper<sizeof (new (&i) int(1))>*) |
| 4048 --format=gnu-v3 |
| 4049 _Z6check4IiEvP6helperIXszna_A1_T_EEE |
| 4050 void check4<int>(helper<sizeof (new int [1])>*) |
| 4051 --format=gnu-v3 |
| 4052 _Z6check5IiEvP6helperIXszna_A1_T_piEEE |
| 4053 void check5<int>(helper<sizeof (new int [1]())>*) |
| 4054 --format=gnu-v3 |
| 4055 _Z1fIiEDTcmgsdlfp_psfp_EPT_ |
| 4056 decltype ((::delete {parm#1}),(+{parm#1})) f<int>(int*) |
| 4057 --format=gnu-v3 |
| 4058 _Z1fIiEDTcmdafp_psfp_EPT_ |
| 4059 decltype ((delete[] {parm#1}),(+{parm#1})) f<int>(int*) |
| 4060 --format=gnu-v3 |
| 4061 _ZN1AdlEPv |
| 4062 A::operator delete(void*) |
| 4063 --format=gnu-v3 |
| 4064 _Z2f1IiEDTppfp_ET_ |
| 4065 decltype ({parm#1}++) f1<int>(int) |
| 4066 --format=gnu-v3 |
| 4067 _Z2f1IiEDTpp_fp_ET_ |
| 4068 decltype (++{parm#1}) f1<int>(int) |
| 4069 --format=gnu-v3 |
| 4070 _Z2f1IiEDTcl1gfp_ilEEET_ |
| 4071 decltype (g({parm#1}, {})) f1<int>(int) |
| 4072 --format=gnu-v3 |
| 4073 _Z2f1IiEDTnw_T_ilEES0_ |
| 4074 decltype (new int{}) f1<int>(int) |
| 4075 --format=gnu-v3 |
| 4076 _Zli2_wPKc |
| 4077 operator"" _w(char const*) |
| 4078 --format=gnu-v3 |
| 4079 _Z1fIiEDTnw_Dapifp_EET_ |
| 4080 decltype (new auto({parm#1})) f<int>(int) |
| 4081 --format=gnu-v3 |
| 4082 _Z1fIiERDaRKT_S1_ |
| 4083 auto& f<int>(int const&, int) |
4021 # | 4084 # |
4022 # Ada (GNAT) tests. | 4085 # Ada (GNAT) tests. |
4023 # | 4086 # |
4024 # Simple test. | 4087 # Simple test. |
4025 --format=gnat | 4088 --format=gnat |
4026 yz__qrs | 4089 yz__qrs |
4027 yz.qrs | 4090 yz.qrs |
4028 # Operator | 4091 # Operator |
4029 --format=gnat | 4092 --format=gnat |
4030 oper__Oadd | 4093 oper__Oadd |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4196 # | 4259 # |
4197 --format=gnu-v3 --no-params | 4260 --format=gnu-v3 --no-params |
4198 _Z3fooi._omp_cpyfn.6 | 4261 _Z3fooi._omp_cpyfn.6 |
4199 foo(int) [clone ._omp_cpyfn.6] | 4262 foo(int) [clone ._omp_cpyfn.6] |
4200 foo | 4263 foo |
4201 # | 4264 # |
4202 --format=gnu-v3 --no-params | 4265 --format=gnu-v3 --no-params |
4203 _Z1fIKFvvES0_Evv | 4266 _Z1fIKFvvES0_Evv |
4204 void f<void () const, void ()>() | 4267 void f<void () const, void ()>() |
4205 f<void () const, void ()> | 4268 f<void () const, void ()> |
| 4269 # |
| 4270 --format=gnu-v3 |
| 4271 _ZN4modc6parser8sequenceINS_9astParser13LocatedParserINS0_9ParserRefINS2_UlRNS2_
16TokenParserInputEE_EEEEEINS0_14OptionalParserINS2_18ListParserTemplateILNS_6to
kens5Token4TypeE4EXadL_ZNSD_Ut_13parenthesizedEEEE6ParserINS4_INS0_6ParserIS5_NS
_3ast10ExpressionEEEEEEEEENSA_INS4_INS2_22OneOfKeywordsToTParserINSJ_5StyleEEEEE
EENS0_14SequenceParserIS5_INS0_18ExactElementParserIS5_EENSA_ISM_EEEEENS0_14Repe
atedParserINS4_INS0_15TransformParserINSU_IS5_INS4_INSP_INSJ_10Annotation12Relat
ionshipEEEEESX_EEENS2_UlNS2_3LocES12_ONS_5MaybeISK_EEE19_EEEEELb0EEEEEENSU_INS0_
17ExtractParserTypeIT_E9InputTypeEINS0_8MaybeRefIS1F_E4TypeEDpNS1I_IT0_E4TypeEEE
EOS1F_DpOS1L_ |
| 4272 modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::astParser:
:ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1
}::parenthesized>::Parser::Style> ><modc::parser::ExtractParserType<modc::astPar
ser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astPar
ser::TokenParserInput&)#1}> > >::InputType, modc::parser::MaybeRef<modc::astPars
er::{lambda(modc::astParser::Loc, modc::parser::RepeatedParser, modc::Maybe<modc
::parser::Parser>&&)#21}>::Type, modc::parser::RepeatedParser<modc::parser::Pars
erRef<modc::parser::TransformParser<modc::parser::ParserRef<modc::astParser::One
OfKeywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Ty
pe)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> ><modc::as
tParser::TokenParserInput<modc::parser::ParserRef<modc::astParser::ListParserTem
plate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesiz
ed>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenP
arserInput, modc::ast::Expression> > ><modc::astParser::ListParserTemplate<(modc
::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser
::Annotation::Relationship> >, modc::parser::ExactElementParser> >, modc::astPar
ser::{lambda(modc::astParser::Loc, modc::parser::RepeatedParser, modc::Maybe<mod
c::parser::Parser>&&)#21}> >, false><modc::parser::OptionalParser<modc::astParse
r::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type
#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::a
stParser::TokenParserInput, modc::ast::Expression> > > > >::Type, modc::parser::
RepeatedParser<modc::parser::ParserRef<modc::parser::TransformParser<modc::parse
r::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::astParser::ListParser
Template<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthe
sized>::Parser::Style> ><modc::astParser::TokenParserInput<modc::parser::ParserR
ef<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::toke
ns::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parse
r::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > ><modc::as
tParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unname
d type#1}::parenthesized>::Parser::Annotation::Relationship> >, modc::parser::Ex
actElementParser> >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser
::RepeatedParser, modc::Maybe<modc::parser::Parser>&&)#21}> >, false><modc::astP
arser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astP
arser::TokenParserInput&)#1}> ><modc::parser::ParserRef<modc::astParser::OneOfKe
ywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4
, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> > > >::Type, m
odc::parser::RepeatedParser<modc::parser::ParserRef<modc::parser::TransformParse
r<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::astParse
r::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type
#1}::parenthesized>::Parser::Style> ><modc::astParser::TokenParserInput<modc::pa
rser::ParserRef<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4
, &modc::tokens::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRe
f<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression>
> ><modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::to
kens::{unnamed type#1}::parenthesized>::Parser::Annotation::Relationship> >, mod
c::parser::ExactElementParser> >, modc::astParser::{lambda(modc::astParser::Loc,
modc::parser::RepeatedParser, modc::Maybe<modc::parser::Parser>&&)#21}> >, fals
e><modc::parser::SequenceParser<modc::astParser::TokenParserInput<modc::parser::
ExactElementParser<modc::astParser::TokenParserInput>, modc::astParser::LocatedP
arser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenPar
serInput&)#1}> ><modc::ast::Expression> > > >::Type, modc::parser::RepeatedParse
r<modc::parser::ParserRef<modc::parser::TransformParser<modc::parser::ParserRef<
modc::astParser::OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<(mod
c::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parse
r::Style> ><modc::astParser::TokenParserInput<modc::parser::ParserRef<modc::astP
arser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed
type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<mod
c::astParser::TokenParserInput, modc::ast::Expression> > ><modc::astParser::List
ParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::pa
renthesized>::Parser::Annotation::Relationship> >, modc::parser::ExactElementPar
ser> >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser::RepeatedPar
ser, modc::Maybe<modc::parser::Parser>&&)#21}> >, false><modc::parser::RepeatedP
arser<modc::parser::ParserRef<modc::parser::TransformParser<modc::parser::Parser
Ref<modc::astParser::OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<
(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::P
arser::Style> ><modc::astParser::TokenParserInput<modc::parser::ParserRef<modc::
astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unna
med type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser
<modc::astParser::TokenParserInput, modc::ast::Expression> > ><modc::astParser::
ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}
::parenthesized>::Parser::Annotation::Relationship> >, modc::parser::ExactElemen
tParser> >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser::Repeate
dParser, modc::Maybe<modc::parser::Parser>&&)#21}> >, false> >::Type> modc::pars
er::sequence<modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astPar
ser::{lambda(modc::astParser::TokenParserInput&)#1}> >, modc::parser::OptionalPa
rser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::to
kens::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::par
ser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > > >, mod
c::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(mod
c::astParser::TokenParserInput&)#1}> ><modc::parser::ParserRef<modc::astParser::
OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::Token:
:Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> > >, mo
dc::parser::SequenceParser<modc::astParser::TokenParserInput<modc::parser::Exact
ElementParser<modc::astParser::TokenParserInput>, modc::astParser::LocatedParser
<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserIn
put&)#1}> ><modc::ast::Expression> > >, modc::parser::RepeatedParser<modc::parse
r::ParserRef<modc::parser::TransformParser<modc::parser::ParserRef<modc::astPars
er::OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::To
ken::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> ><m
odc::astParser::TokenParserInput<modc::parser::ParserRef<modc::astParser::ListPa
rserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::pare
nthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser:
:TokenParserInput, modc::ast::Expression> > ><modc::astParser::ListParserTemplat
e<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>:
:Parser::Annotation::Relationship> >, modc::parser::ExactElementParser> >, modc:
:astParser::{lambda(modc::astParser::Loc, modc::parser::RepeatedParser, modc::Ma
ybe<modc::parser::Parser>&&)#21}> >, false> >(modc::astParser::{lambda(modc::ast
Parser::Loc, modc::parser::RepeatedParser, modc::Maybe<modc::parser::Parser>&&)#
21}&&, (modc::parser::ExtractParserType<modc::astParser::LocatedParser<modc::par
ser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}>
> >&&)...) |
OLD | NEW |