brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.2 KiB · a5998d2 Raw
302 lines · plain
1; These tests are based on clang/test/CodeGenCXX/mangle-ms-arg-qualifiers.cpp2; RUN: llvm-undname < %s | FileCheck %s3 4; CHECK-NOT: Invalid mangled name5 6?foo@@YAXI@Z7; CHECK: void __cdecl foo(unsigned int)8 9?foo@@YAXN@Z  10; CHECK: void __cdecl foo(double)11 12?foo_pad@@YAXPAD@Z13; CHECK: void __cdecl foo_pad(char *)14?foo_pad@@YAXPEAD@Z15; CHECK: void __cdecl foo_pad(char *)16 17?foo_pbd@@YAXPBD@Z18; CHECK: void __cdecl foo_pbd(char const *)19?foo_pbd@@YAXPEBD@Z20; CHECK: void __cdecl foo_pbd(char const *)21 22?foo_pcd@@YAXPCD@Z23; CHECK: void __cdecl foo_pcd(char volatile *)24?foo_pcd@@YAXPECD@Z25; CHECK: void __cdecl foo_pcd(char volatile *)26 27?foo_qad@@YAXQAD@Z28; CHECK: void __cdecl foo_qad(char *const)29?foo_qad@@YAXQEAD@Z30; CHECK: void __cdecl foo_qad(char *const)31 32?foo_rad@@YAXRAD@Z33; CHECK: void __cdecl foo_rad(char *volatile)34?foo_rad@@YAXREAD@Z35; CHECK: void __cdecl foo_rad(char *volatile)36 37?foo_sad@@YAXSAD@Z38; CHECK: void __cdecl foo_sad(char *const volatile)39?foo_sad@@YAXSEAD@Z40; CHECK: void __cdecl foo_sad(char *const volatile)41 42?foo_piad@@YAXPIAD@Z43; CHECK: void __cdecl foo_piad(char *__restrict)44?foo_piad@@YAXPEIAD@Z45; CHECK: void __cdecl foo_piad(char *__restrict)46 47?foo_qiad@@YAXQIAD@Z48; CHECK: void __cdecl foo_qiad(char *const __restrict)49?foo_qiad@@YAXQEIAD@Z50; CHECK: void __cdecl foo_qiad(char *const __restrict)51 52?foo_riad@@YAXRIAD@Z53; CHECK: void __cdecl foo_riad(char *volatile __restrict)54?foo_riad@@YAXREIAD@Z55; CHECK: void __cdecl foo_riad(char *volatile __restrict)56 57?foo_siad@@YAXSIAD@Z58; CHECK: void __cdecl foo_siad(char *const volatile __restrict)59?foo_siad@@YAXSEIAD@Z60; CHECK: void __cdecl foo_siad(char *const volatile __restrict)61 62?foo_papad@@YAXPAPAD@Z63; CHECK: void __cdecl foo_papad(char **)64?foo_papad@@YAXPEAPEAD@Z65; CHECK: void __cdecl foo_papad(char **)66 67?foo_papbd@@YAXPAPBD@Z68; CHECK: void __cdecl foo_papbd(char const **)69?foo_papbd@@YAXPEAPEBD@Z70; CHECK: void __cdecl foo_papbd(char const **)71 72?foo_papcd@@YAXPAPCD@Z73; CHECK: void __cdecl foo_papcd(char volatile **)74?foo_papcd@@YAXPEAPECD@Z75; CHECK: void __cdecl foo_papcd(char volatile **)76 77?foo_pbqad@@YAXPBQAD@Z78; CHECK: void __cdecl foo_pbqad(char *const *)79?foo_pbqad@@YAXPEBQEAD@Z80; CHECK: void __cdecl foo_pbqad(char *const *)81 82?foo_pcrad@@YAXPCRAD@Z83; CHECK: void __cdecl foo_pcrad(char *volatile *)84?foo_pcrad@@YAXPECREAD@Z85; CHECK: void __cdecl foo_pcrad(char *volatile *)86 87?foo_qapad@@YAXQAPAD@Z88; CHECK: void __cdecl foo_qapad(char **const)89?foo_qapad@@YAXQEAPEAD@Z90; CHECK: void __cdecl foo_qapad(char **const)91 92?foo_rapad@@YAXRAPAD@Z93; CHECK: void __cdecl foo_rapad(char **volatile)94?foo_rapad@@YAXREAPEAD@Z95; CHECK: void __cdecl foo_rapad(char **volatile)96 97?foo_pbqbd@@YAXPBQBD@Z98; CHECK: void __cdecl foo_pbqbd(char const *const *)99?foo_pbqbd@@YAXPEBQEBD@Z100; CHECK: void __cdecl foo_pbqbd(char const *const *)101 102?foo_pbqcd@@YAXPBQCD@Z103; CHECK: void __cdecl foo_pbqcd(char volatile *const *)104?foo_pbqcd@@YAXPEBQECD@Z105; CHECK: void __cdecl foo_pbqcd(char volatile *const *)106 107?foo_pcrbd@@YAXPCRBD@Z108; CHECK: void __cdecl foo_pcrbd(char const *volatile *)109?foo_pcrbd@@YAXPECREBD@Z110; CHECK: void __cdecl foo_pcrbd(char const *volatile *)111 112?foo_pcrcd@@YAXPCRCD@Z113; CHECK: void __cdecl foo_pcrcd(char volatile *volatile *)114?foo_pcrcd@@YAXPECRECD@Z115; CHECK: void __cdecl foo_pcrcd(char volatile *volatile *)116 117?foo_aad@@YAXAAD@Z118?foo_aad@@YAXAEAD@Z119; CHECK: void __cdecl foo_aad(char &)120 121?foo_abd@@YAXABD@Z122; CHECK: void __cdecl foo_abd(char const &)123?foo_abd@@YAXAEBD@Z124; CHECK: void __cdecl foo_abd(char const &)125 126?foo_aapad@@YAXAAPAD@Z127; CHECK: void __cdecl foo_aapad(char *&)128?foo_aapad@@YAXAEAPEAD@Z129; CHECK: void __cdecl foo_aapad(char *&)130 131?foo_aapbd@@YAXAAPBD@Z132; CHECK: void __cdecl foo_aapbd(char const *&)133?foo_aapbd@@YAXAEAPEBD@Z134; CHECK: void __cdecl foo_aapbd(char const *&)135 136?foo_abqad@@YAXABQAD@Z137; CHECK: void __cdecl foo_abqad(char *const &)138?foo_abqad@@YAXAEBQEAD@Z139; CHECK: void __cdecl foo_abqad(char *const &)140 141?foo_abqbd@@YAXABQBD@Z142; CHECK: void __cdecl foo_abqbd(char const *const &)143?foo_abqbd@@YAXAEBQEBD@Z144; CHECK: void __cdecl foo_abqbd(char const *const &)145 146?foo_aay144h@@YAXAAY144H@Z147; CHECK: void __cdecl foo_aay144h(int (&)[5][5])148?foo_aay144h@@YAXAEAY144H@Z149; CHECK: void __cdecl foo_aay144h(int (&)[5][5])150 151?foo_aay144cbh@@YAXAAY144$$CBH@Z152; CHECK: void __cdecl foo_aay144cbh(int const (&)[5][5])153?foo_aay144cbh@@YAXAEAY144$$CBH@Z154; CHECK: void __cdecl foo_aay144cbh(int const (&)[5][5])155 156?foo_qay144h@@YAX$$QAY144H@Z157; CHECK: void __cdecl foo_qay144h(int (&&)[5][5])158?foo_qay144h@@YAX$$QEAY144H@Z159; CHECK: void __cdecl foo_qay144h(int (&&)[5][5])160 161?foo_qay144cbh@@YAX$$QAY144$$CBH@Z162; CHECK: void __cdecl foo_qay144cbh(int const (&&)[5][5])163?foo_qay144cbh@@YAX$$QEAY144$$CBH@Z164; CHECK: void __cdecl foo_qay144cbh(int const (&&)[5][5])165 166?foo_p6ahxz@@YAXP6AHXZ@Z167; CHECK: void __cdecl foo_p6ahxz(int (__cdecl *)(void))168?foo_p6ahxz@@YAXP6AHXZ@Z169; CHECK: void __cdecl foo_p6ahxz(int (__cdecl *)(void))170 171?foo_a6ahxz@@YAXA6AHXZ@Z172; CHECK: void __cdecl foo_a6ahxz(int (__cdecl &)(void))173?foo_a6ahxz@@YAXA6AHXZ@Z174; CHECK: void __cdecl foo_a6ahxz(int (__cdecl &)(void))175 176?foo_q6ahxz@@YAX$$Q6AHXZ@Z177; CHECK: void __cdecl foo_q6ahxz(int (__cdecl &&)(void))178?foo_q6ahxz@@YAX$$Q6AHXZ@Z179; CHECK: void __cdecl foo_q6ahxz(int (__cdecl &&)(void))180 181?foo_qay04h@@YAXQAY04H@Z182?foo_qay04h@@YAXQEAY04H@Z183; CHECK: void __cdecl foo_qay04h(int (*const)[5])184 185?foo_qay04cbh@@YAXQAY04$$CBH@Z186; CHECK: void __cdecl foo_qay04cbh(int const (*const)[5])187?foo_qay04cbh@@YAXQEAY04$$CBH@Z188; CHECK: void __cdecl foo_qay04cbh(int const (*const)[5])189 190?foo@@YAXPAY02N@Z191; CHECK: void __cdecl foo(double (*)[3])192?foo@@YAXPEAY02N@Z193; CHECK: void __cdecl foo(double (*)[3])194 195?foo@@YAXQAN@Z196; CHECK: void __cdecl foo(double *const)197?foo@@YAXQEAN@Z198; CHECK: void __cdecl foo(double *const)199 200?foo_const@@YAXQBN@Z201; CHECK: void __cdecl foo_const(double const *const)202?foo_const@@YAXQEBN@Z203; CHECK: void __cdecl foo_const(double const *const)204 205?foo_volatile@@YAXQCN@Z206; CHECK: void __cdecl foo_volatile(double volatile *const)207?foo_volatile@@YAXQECN@Z208; CHECK: void __cdecl foo_volatile(double volatile *const)209 210?foo@@YAXPAY02NQBNN@Z211; CHECK: void __cdecl foo(double (*)[3], double const *const, double)212?foo@@YAXPEAY02NQEBNN@Z213; CHECK: void __cdecl foo(double (*)[3], double const *const, double)214 215?foo_fnptrconst@@YAXP6AXQAH@Z@Z216; CHECK: void __cdecl foo_fnptrconst(void (__cdecl *)(int *const))217?foo_fnptrconst@@YAXP6AXQEAH@Z@Z218; CHECK: void __cdecl foo_fnptrconst(void (__cdecl *)(int *const))219 220?foo_fnptrarray@@YAXP6AXQAH@Z@Z221; CHECK: void __cdecl foo_fnptrarray(void (__cdecl *)(int *const))222?foo_fnptrarray@@YAXP6AXQEAH@Z@Z223; CHECK: void __cdecl foo_fnptrarray(void (__cdecl *)(int *const))224 225?foo_fnptrbackref1@@YAXP6AXQAH@Z1@Z226; CHECK: void __cdecl foo_fnptrbackref1(void (__cdecl *)(int *const), void (__cdecl *)(int *const))227?foo_fnptrbackref1@@YAXP6AXQEAH@Z1@Z228; CHECK: void __cdecl foo_fnptrbackref1(void (__cdecl *)(int *const), void (__cdecl *)(int *const))229 230?foo_fnptrbackref2@@YAXP6AXQAH@Z1@Z231; CHECK: void __cdecl foo_fnptrbackref2(void (__cdecl *)(int *const), void (__cdecl *)(int *const))232?foo_fnptrbackref2@@YAXP6AXQEAH@Z1@Z233; CHECK: void __cdecl foo_fnptrbackref2(void (__cdecl *)(int *const), void (__cdecl *)(int *const))234 235?foo_fnptrbackref3@@YAXP6AXQAH@Z1@Z236; CHECK: void __cdecl foo_fnptrbackref3(void (__cdecl *)(int *const), void (__cdecl *)(int *const))237?foo_fnptrbackref3@@YAXP6AXQEAH@Z1@Z238; CHECK: void __cdecl foo_fnptrbackref3(void (__cdecl *)(int *const), void (__cdecl *)(int *const))239 240?foo_fnptrbackref4@@YAXP6AXPAH@Z1@Z241; CHECK: void __cdecl foo_fnptrbackref4(void (__cdecl *)(int *), void (__cdecl *)(int *))242?foo_fnptrbackref4@@YAXP6AXPEAH@Z1@Z243; CHECK: void __cdecl foo_fnptrbackref4(void (__cdecl *)(int *), void (__cdecl *)(int *))244 245?ret_fnptrarray@@YAP6AXQAH@ZXZ246; CHECK: void (__cdecl * __cdecl ret_fnptrarray(void))(int *const)247?ret_fnptrarray@@YAP6AXQEAH@ZXZ248; CHECK: void (__cdecl * __cdecl ret_fnptrarray(void))(int *const)249 250; The first argument gets mangled as-if it were written int *const251; The second arg should not form a backref because it isn't qualified252?mangle_no_backref0@@YAXQAHPAH@Z253; CHECK: void __cdecl mangle_no_backref0(int *const, int *)254?mangle_no_backref0@@YAXQEAHPEAH@Z255; CHECK: void __cdecl mangle_no_backref0(int *const, int *)256 257?mangle_no_backref1@@YAXQAHQAH@Z258; CHECK: void __cdecl mangle_no_backref1(int *const, int *const)259?mangle_no_backref1@@YAXQEAHQEAH@Z260; CHECK: void __cdecl mangle_no_backref1(int *const, int *const)261 262; Pointer to function types don't backref with function types263?mangle_no_backref2@@YAXP6AXXZP6AXXZ@Z264; CHECK: void __cdecl mangle_no_backref2(void (__cdecl *)(void), void (__cdecl *)(void))265?mangle_no_backref2@@YAXP6AXXZP6AXXZ@Z266; CHECK: void __cdecl mangle_no_backref2(void (__cdecl *)(void), void (__cdecl *)(void))267 268?mangle_yes_backref0@@YAXQAH0@Z269; CHECK: void __cdecl mangle_yes_backref0(int *const, int *const)270?mangle_yes_backref0@@YAXQEAH0@Z271; CHECK: void __cdecl mangle_yes_backref0(int *const, int *const)272 273?mangle_yes_backref1@@YAXQAH0@Z274; CHECK: void __cdecl mangle_yes_backref1(int *const, int *const)275?mangle_yes_backref1@@YAXQEAH0@Z276; CHECK: void __cdecl mangle_yes_backref1(int *const, int *const)277 278?mangle_yes_backref2@@YAXQBQ6AXXZ0@Z279; CHECK: void __cdecl mangle_yes_backref2(void (__cdecl *const *const)(void), void (__cdecl *const *const)(void))280?mangle_yes_backref2@@YAXQEBQ6AXXZ0@Z281; CHECK: void __cdecl mangle_yes_backref2(void (__cdecl *const *const)(void), void (__cdecl *const *const)(void))282 283?mangle_yes_backref3@@YAXQAP6AXXZ0@Z284; CHECK: void __cdecl mangle_yes_backref3(void (__cdecl **const)(void), void (__cdecl **const)(void))285?mangle_yes_backref3@@YAXQEAP6AXXZ0@Z286; CHECK: void __cdecl mangle_yes_backref3(void (__cdecl **const)(void), void (__cdecl **const)(void))287 288?mangle_yes_backref4@@YAXQIAH0@Z289; CHECK: void __cdecl mangle_yes_backref4(int *const __restrict, int *const __restrict)290?mangle_yes_backref4@@YAXQEIAH0@Z291; CHECK: void __cdecl mangle_yes_backref4(int *const __restrict, int *const __restrict)292 293?pr23325@@YAXQBUS@@0@Z294; CHECK: void __cdecl pr23325(struct S const *const, struct S const *const)295?pr23325@@YAXQEBUS@@0@Z296; CHECK: void __cdecl pr23325(struct S const *const, struct S const *const)297 298; ?vla_arg@@YAXHQAY0A@H@Z299; FIXME: void __cdecl vla_arg(int i, int (*const)[0])300; ?vla_arg@@YAXHQEAY0A@H@Z301; FIXME: void __cdecl vla_arg(int i, int (*const)[0])302