annotate gcc/testsuite/g++.dg/abi/mangle73.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 // { dg-do compile { target c++2a } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3 struct A
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 char a[2][2];
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8 template <A> struct B { };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10 typedef B<A{ { { 0, 0 }, { 0, 0 } } }> AZZZZ;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 typedef B<A{ { { 0, 0 }, { 0 } } }> AZZZ_;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12 typedef B<A{ { { 0, 0 } } }> AZZ__;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13 typedef B<A{ { { 0 } } }> AZ___;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14 typedef B<A{ { { } } }> A____;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16 typedef B<A{ { { "" }, { "" } } }> AS_S_;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17 typedef B<A{ { { "" }, { 0, 0 } } }> AS_ZZ;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 typedef B<A{ { { "" }, { 0 } } }> AS_Z_;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 typedef B<A{ { { "" } } }> AS___;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
21
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
22 // Verify that the types mangle the same.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
23 void a_zzzz (AZZZZ) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
24 // { dg-final { scan-assembler "_Z6a_zzzz1BIXtl1AEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
25
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
26 void a_zzz_ (AZZZ_) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
27 // { dg-final { scan-assembler "_Z6a_zzz_1BIXtl1AEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
28
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
29 void a_zz__ (AZZ__) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
30 // { dg-final { scan-assembler "_Z6a_zz__1BIXtl1AEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
31
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
32 void a_z___ (AZ___) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
33 // { dg-final { scan-assembler "_Z6a_z___1BIXtl1AEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
34
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
35 void a_____ (A____) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
36 // { dg-final { scan-assembler "_Z6a_____1BIXtl1AEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
37
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
38 void a_s_s_ (AS_S_) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
39 // { dg-final { scan-assembler "_Z6a_s_s_1BIXtl1AEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
40
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
41 void a_s_zz (AS_ZZ) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
42 // { dg-final { scan-assembler "_Z6a_s_zz1BIXtl1AEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
43
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
44 void a_s_z_ (AS_Z_) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
45 // { dg-final { scan-assembler "_Z6a_s_z_1BIXtl1AEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
46
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
47 void a_s___ (AS___) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
48 // { dg-final { scan-assembler "_Z6a_s___1BIXtl1AEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
49
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
50
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
51 struct C
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
52 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
53 struct { const char a[2][2], *p; } a[2];
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
54 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
55
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
56 template <C> struct D { };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
57
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
58 typedef D<C{{{{{ 0, 0 }, { 0, 0 }}, 0 }, {{{ 0, 0 }, { 0, 0 }}, 0 }}}> DZZZZZZZZZZ;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
59 typedef D<C{{{{{ 0, 0 }, { 0, 0 }}, 0 }, {{{ 0, 0 }, { 0, 0 }}}}}> DZZZZZZZZZ_;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
60 typedef D<C{{{{{ 0, 0 }, { 0, 0 }}, 0 }, {{{ 0, 0 }, { 0 }}}}}> DZZZZZZZZ__;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
61 typedef D<C{{{{{ 0, 0 }, { 0, 0 }}, 0 }, {{{ 0, 0 } }}}}> DZZZZZZZ___;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
62 typedef D<C{{{{{ 0, 0 }, { 0, 0 }}, 0 }, {{{ 0 } }}}}> DZZZZZZ____;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
63 typedef D<C{{{{{ 0, 0 }, { 0, 0 }}, 0 }}}> DZZZZZ_____;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
64 typedef D<C{{{{{ 0, 0 }, { 0, 0 }}}}}> DZZZZ______;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
65 typedef D<C{{{{{ 0, 0 }, { 0 }}}}}> DZZZ_______;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
66 typedef D<C{{{{{ 0, 0 }}}}}> DZZ________;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
67 typedef D<C{{{{{ 0 }}}}}> DZ_________;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
68 typedef D<C{ }> D__________;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
69
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
70 typedef D<C{{{{{ "" }, { "" }}, 0 }, {{{ "" }, { "" }}, 0 }}}> DS_S_ZS_S_Z;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
71
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
72 void d_zzzzzzzzzz (DZZZZZZZZZZ) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
73 // { dg-final { scan-assembler "_Z12d_zzzzzzzzzz1DIXtl1CEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
74 void d_zzzzzzzzz_ (DZZZZZZZZZ_) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
75 // { dg-final { scan-assembler "_Z12d_zzzzzzzzz_1DIXtl1CEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
76 void d_zzzzzzzz__ (DZZZZZZZZ__) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
77 // { dg-final { scan-assembler "_Z12d_zzzzzzzz__1DIXtl1CEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
78 void d_zzzzzzz___ (DZZZZZZZ___) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
79 // { dg-final { scan-assembler "_Z12d_zzzzzzz___1DIXtl1CEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
80 void d_zzzzzz____ (DZZZZZZ____) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
81 // { dg-final { scan-assembler "_Z12d_zzzzzz____1DIXtl1CEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
82 void d_zzzzz_____ (DZZZZZ_____) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
83 // { dg-final { scan-assembler "_Z12d_zzzzz_____1DIXtl1CEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
84 void d_zzzz______ (DZZZZ______) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
85 // { dg-final { scan-assembler "_Z12d_zzzz______1DIXtl1CEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
86 void d_zzz_______ (DZZZ_______) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
87 // { dg-final { scan-assembler "_Z12d_zzz_______1DIXtl1CEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
88 void d_zz________ (DZZ________) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
89 // { dg-final { scan-assembler "_Z12d_zz________1DIXtl1CEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
90 void d_z_________ (DZ_________) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
91 // { dg-final { scan-assembler "_Z12d_z_________1DIXtl1CEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
92 void d___________ (D__________) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
93 // { dg-final { scan-assembler "_Z12d___________1DIXtl1CEEE" } }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
94
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
95 void d_s_s_zs_s_z (DS_S_ZS_S_Z) { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
96 // { dg-final { scan-assembler "_Z12d_s_s_zs_s_z1DIXtl1CEEE" } }