1 // I, Howard Hinnant, hereby place this code in the public domain.
2 
3 // Test overload resolution among reference types
4 
5 // { dg-do compile { target c++11 } }
6 // { dg-skip-if "packed attribute missing for struct one/three/five/seven" { "epiphany-*-*" } }
7 
8 template <bool> struct sa;
9 template <> struct sa<true> {};
10 
11 struct one   {long x[1];};
12 struct two   {long x[2];};
13 struct three {long x[3];};
14 struct four  {long x[4];};
15 struct five  {long x[5];};
16 struct six   {long x[6];};
17 struct seven {long x[7];};
18 struct eight {long x[8];};
19 
20 struct A
21 {
22     A();
23     A(const volatile A&&);
24 };
25 
26                A    source();
27 const          A  c_source();
28       volatile A  v_source();
29 const volatile A cv_source();
30 
31 // 3 at a time
32 
33 one   sink_3_123(               A&);
34 two   sink_3_123(const          A&);
35 three sink_3_123(volatile       A&);
36 
37 int test3_123()
38 {
39                    A a;
40     const          A ca;
41           volatile A va;
42     const volatile A cva;
43     sa<sizeof(sink_3_123(a))           == 1 * sizeof(long)> t1;
44     sa<sizeof(sink_3_123(ca))          == 2 * sizeof(long)> t2;
45     sa<sizeof(sink_3_123(va))          == 3 * sizeof(long)> t3;
46     sa<sizeof(sink_3_123(source()))    == 2 * sizeof(long)> t5;
47     sa<sizeof(sink_3_123(c_source()))  == 2 * sizeof(long)> t6;
48     return 0;
49 }
50 
51 one   sink_3_124(               A&);
52 two   sink_3_124(const          A&);
53 four  sink_3_124(const volatile A&);
54 
55 int test3_124()
56 {
57                    A a;
58     const          A ca;
59           volatile A va;
60     const volatile A cva;
61     sa<sizeof(sink_3_124(a))           == 1 * sizeof(long)> t1;
62     sa<sizeof(sink_3_124(ca))          == 2 * sizeof(long)> t2;
63     sa<sizeof(sink_3_124(va))          == 4 * sizeof(long)> t3;
64     sa<sizeof(sink_3_124(cva))         == 4 * sizeof(long)> t4;
65     sa<sizeof(sink_3_124(source()))    == 2 * sizeof(long)> t5;
66     sa<sizeof(sink_3_124(c_source()))  == 2 * sizeof(long)> t6;
67     return 0;
68 }
69 
70 one   sink_3_125(               A&);
71 two   sink_3_125(const          A&);
72 five  sink_3_125(               A&&);
73 
74 int test3_125()
75 {
76                    A a;
77     const          A ca;
78           volatile A va;
79     const volatile A cva;
80     sa<sizeof(sink_3_125(a))           == 1 * sizeof(long)> t1;
81     sa<sizeof(sink_3_125(ca))          == 2 * sizeof(long)> t2;
82     sa<sizeof(sink_3_125(source()))    == 5 * sizeof(long)> t5;
83     sa<sizeof(sink_3_125(c_source()))  == 2 * sizeof(long)> t6;
84     return 0;
85 }
86 
87 one   sink_3_126(               A&);
88 two   sink_3_126(const          A&);
89 six   sink_3_126(const          A&&);
90 
91 int test3_126()
92 {
93                    A a;
94     const          A ca;
95           volatile A va;
96     const volatile A cva;
97     sa<sizeof(sink_3_126(a))           == 1 * sizeof(long)> t1;
98     sa<sizeof(sink_3_126(ca))          == 2 * sizeof(long)> t2;
99     sa<sizeof(sink_3_126(source()))    == 6 * sizeof(long)> t5;
100     sa<sizeof(sink_3_126(c_source()))  == 6 * sizeof(long)> t6;
101     return 0;
102 }
103 
104 one   sink_3_127(               A&);
105 two   sink_3_127(const          A&);
106 seven sink_3_127(volatile       A&&);
107 
108 int test3_127()
109 {
110                    A a;
111     const          A ca;
112           volatile A va;
113     const volatile A cva;
114     sa<sizeof(sink_3_127(a))           == 1 * sizeof(long)> t1;
115     sa<sizeof(sink_3_127(ca))          == 2 * sizeof(long)> t2;
116     sa<sizeof(sink_3_127(source()))    == 7 * sizeof(long)> t5;
117     sa<sizeof(sink_3_127(c_source()))  == 2 * sizeof(long)> t6;
118     sa<sizeof(sink_3_127(v_source()))  == 7 * sizeof(long)> t7;
119     return 0;
120 }
121 
122 one   sink_3_128(               A&);
123 two   sink_3_128(const          A&);
124 eight sink_3_128(const volatile A&&);
125 
126 int test3_128()
127 {
128                    A a;
129     const          A ca;
130           volatile A va;
131     const volatile A cva;
132     sa<sizeof(sink_3_128(a))           == 1 * sizeof(long)> t1;
133     sa<sizeof(sink_3_128(ca))          == 2 * sizeof(long)> t2;
134     sa<sizeof(sink_3_128(source()))    == 8 * sizeof(long)> t5;
135     sa<sizeof(sink_3_128(c_source()))  == 8 * sizeof(long)> t6;
136     sa<sizeof(sink_3_128(v_source()))  == 8 * sizeof(long)> t7;
137     sa<sizeof(sink_3_128(cv_source())) == 8 * sizeof(long)> t8;
138     return 0;
139 }
140 
141 one   sink_3_134(               A&);
142 three sink_3_134(volatile       A&);
143 four  sink_3_134(const volatile A&);
144 
145 int test3_134()
146 {
147                    A a;
148     const          A ca;
149           volatile A va;
150     const volatile A cva;
151     sa<sizeof(sink_3_134(a))           == 1 * sizeof(long)> t1;
152     sa<sizeof(sink_3_134(ca))          == 4 * sizeof(long)> t2;
153     sa<sizeof(sink_3_134(va))          == 3 * sizeof(long)> t3;
154     sa<sizeof(sink_3_134(cva))         == 4 * sizeof(long)> t4;
155     return 0;
156 }
157 
158 one   sink_3_135(               A&);
159 three sink_3_135(volatile       A&);
160 five  sink_3_135(               A&&);
161 
162 int test3_135()
163 {
164                    A a;
165     const          A ca;
166           volatile A va;
167     const volatile A cva;
168     sa<sizeof(sink_3_135(a))           == 1 * sizeof(long)> t1;
169     sa<sizeof(sink_3_135(va))          == 3 * sizeof(long)> t3;
170     sa<sizeof(sink_3_135(source()))    == 5 * sizeof(long)> t5;
171     return 0;
172 }
173 
174 one   sink_3_136(               A&);
175 three sink_3_136(volatile       A&);
176 six   sink_3_136(const          A&&);
177 
178 int test3_136()
179 {
180                    A a;
181     const          A ca;
182           volatile A va;
183     const volatile A cva;
184     sa<sizeof(sink_3_136(a))           == 1 * sizeof(long)> t1;
185     sa<sizeof(sink_3_136(va))          == 3 * sizeof(long)> t3;
186     sa<sizeof(sink_3_136(source()))    == 6 * sizeof(long)> t5;
187     sa<sizeof(sink_3_136(c_source()))  == 6 * sizeof(long)> t6;
188     return 0;
189 }
190 
191 one   sink_3_137(               A&);
192 three sink_3_137(volatile       A&);
193 seven sink_3_137(volatile       A&&);
194 
195 int test3_137()
196 {
197                    A a;
198     const          A ca;
199           volatile A va;
200     const volatile A cva;
201     sa<sizeof(sink_3_137(a))           == 1 * sizeof(long)> t1;
202     sa<sizeof(sink_3_137(va))          == 3 * sizeof(long)> t3;
203     sa<sizeof(sink_3_137(source()))    == 7 * sizeof(long)> t5;
204     sa<sizeof(sink_3_137(v_source()))  == 7 * sizeof(long)> t7;
205     return 0;
206 }
207 
208 one   sink_3_138(               A&);
209 three sink_3_138(volatile       A&);
210 eight sink_3_138(const volatile A&&);
211 
212 int test3_138()
213 {
214                    A a;
215     const          A ca;
216           volatile A va;
217     const volatile A cva;
218     sa<sizeof(sink_3_138(a))           == 1 * sizeof(long)> t1;
219     sa<sizeof(sink_3_138(va))          == 3 * sizeof(long)> t3;
220     sa<sizeof(sink_3_138(source()))    == 8 * sizeof(long)> t5;
221     sa<sizeof(sink_3_138(c_source()))  == 8 * sizeof(long)> t6;
222     sa<sizeof(sink_3_138(v_source()))  == 8 * sizeof(long)> t7;
223     sa<sizeof(sink_3_138(cv_source())) == 8 * sizeof(long)> t8;
224     return 0;
225 }
226 
227 one   sink_3_145(               A&);
228 four  sink_3_145(const volatile A&);
229 five  sink_3_145(               A&&);
230 
231 int test3_145()
232 {
233                    A a;
234     const          A ca;
235           volatile A va;
236     const volatile A cva;
237     sa<sizeof(sink_3_145(a))           == 1 * sizeof(long)> t1;
238     sa<sizeof(sink_3_145(ca))          == 4 * sizeof(long)> t2;
239     sa<sizeof(sink_3_145(va))          == 4 * sizeof(long)> t3;
240     sa<sizeof(sink_3_145(cva))         == 4 * sizeof(long)> t4;
241     sa<sizeof(sink_3_145(source()))    == 5 * sizeof(long)> t5;
242     return 0;
243 }
244 
245 one   sink_3_146(               A&);
246 four  sink_3_146(const volatile A&);
247 six   sink_3_146(const          A&&);
248 
249 int test3_146()
250 {
251                    A a;
252     const          A ca;
253           volatile A va;
254     const volatile A cva;
255     sa<sizeof(sink_3_146(a))           == 1 * sizeof(long)> t1;
256     sa<sizeof(sink_3_146(ca))          == 4 * sizeof(long)> t2;
257     sa<sizeof(sink_3_146(va))          == 4 * sizeof(long)> t3;
258     sa<sizeof(sink_3_146(cva))         == 4 * sizeof(long)> t4;
259     sa<sizeof(sink_3_146(source()))    == 6 * sizeof(long)> t5;
260     sa<sizeof(sink_3_146(c_source()))  == 6 * sizeof(long)> t6;
261     return 0;
262 }
263 
264 one   sink_3_147(               A&);
265 four  sink_3_147(const volatile A&);
266 seven sink_3_147(volatile       A&&);
267 
268 int test3_147()
269 {
270                    A a;
271     const          A ca;
272           volatile A va;
273     const volatile A cva;
274     sa<sizeof(sink_3_147(a))           == 1 * sizeof(long)> t1;
275     sa<sizeof(sink_3_147(ca))          == 4 * sizeof(long)> t2;
276     sa<sizeof(sink_3_147(va))          == 4 * sizeof(long)> t3;
277     sa<sizeof(sink_3_147(cva))         == 4 * sizeof(long)> t4;
278     sa<sizeof(sink_3_147(source()))    == 7 * sizeof(long)> t5;
279     sa<sizeof(sink_3_147(v_source()))  == 7 * sizeof(long)> t7;
280     return 0;
281 }
282 
283 one   sink_3_148(               A&);
284 four  sink_3_148(const volatile A&);
285 eight sink_3_148(const volatile A&&);
286 
287 int test3_148()
288 {
289                    A a;
290     const          A ca;
291           volatile A va;
292     const volatile A cva;
293     sa<sizeof(sink_3_148(a))           == 1 * sizeof(long)> t1;
294     sa<sizeof(sink_3_148(ca))          == 4 * sizeof(long)> t2;
295     sa<sizeof(sink_3_148(va))          == 4 * sizeof(long)> t3;
296     sa<sizeof(sink_3_148(cva))         == 4 * sizeof(long)> t4;
297     sa<sizeof(sink_3_148(source()))    == 8 * sizeof(long)> t5;
298     sa<sizeof(sink_3_148(c_source()))  == 8 * sizeof(long)> t6;
299     sa<sizeof(sink_3_148(v_source()))  == 8 * sizeof(long)> t7;
300     sa<sizeof(sink_3_148(cv_source())) == 8 * sizeof(long)> t8;
301     return 0;
302 }
303 
304 one   sink_3_156(               A&);
305 five  sink_3_156(               A&&);
306 six   sink_3_156(const          A&&);
307 
308 int test3_156()
309 {
310                    A a;
311     const          A ca;
312           volatile A va;
313     const volatile A cva;
314     sa<sizeof(sink_3_156(a))           == 1 * sizeof(long)> t1;
315     sa<sizeof(sink_3_156(source()))    == 5 * sizeof(long)> t5;
316     sa<sizeof(sink_3_156(c_source()))  == 6 * sizeof(long)> t6;
317     return 0;
318 }
319 
320 one   sink_3_157(               A&);
321 five  sink_3_157(               A&&);
322 seven sink_3_157(volatile       A&&);
323 
324 int test3_157()
325 {
326                    A a;
327     const          A ca;
328           volatile A va;
329     const volatile A cva;
330     sa<sizeof(sink_3_157(a))           == 1 * sizeof(long)> t1;
331     sa<sizeof(sink_3_157(source()))    == 5 * sizeof(long)> t5;
332     sa<sizeof(sink_3_157(v_source()))  == 7 * sizeof(long)> t7;
333     return 0;
334 }
335 
336 one   sink_3_158(               A&);
337 five  sink_3_158(               A&&);
338 eight sink_3_158(const volatile A&&);
339 
340 int test3_158()
341 {
342                    A a;
343     const          A ca;
344           volatile A va;
345     const volatile A cva;
346     sa<sizeof(sink_3_158(a))           == 1 * sizeof(long)> t1;
347     sa<sizeof(sink_3_158(source()))    == 5 * sizeof(long)> t5;
348     sa<sizeof(sink_3_158(c_source()))  == 8 * sizeof(long)> t6;
349     sa<sizeof(sink_3_158(v_source()))  == 8 * sizeof(long)> t7;
350     sa<sizeof(sink_3_158(cv_source())) == 8 * sizeof(long)> t8;
351     return 0;
352 }
353 
354 one   sink_3_167(               A&);
355 six   sink_3_167(const          A&&);
356 seven sink_3_167(volatile       A&&);
357 
358 int test3_167()
359 {
360                    A a;
361     const          A ca;
362           volatile A va;
363     const volatile A cva;
364     sa<sizeof(sink_3_167(a))           == 1 * sizeof(long)> t1;
365     sa<sizeof(sink_3_167(c_source()))  == 6 * sizeof(long)> t6;
366     sa<sizeof(sink_3_167(v_source()))  == 7 * sizeof(long)> t7;
367     return 0;
368 }
369 
370 one   sink_3_168(               A&);
371 six   sink_3_168(const          A&&);
372 eight sink_3_168(const volatile A&&);
373 
374 int test3_168()
375 {
376                    A a;
377     const          A ca;
378           volatile A va;
379     const volatile A cva;
380     sa<sizeof(sink_3_168(a))           == 1 * sizeof(long)> t1;
381     sa<sizeof(sink_3_168(source()))    == 6 * sizeof(long)> t5;
382     sa<sizeof(sink_3_168(c_source()))  == 6 * sizeof(long)> t6;
383     sa<sizeof(sink_3_168(v_source()))  == 8 * sizeof(long)> t7;
384     sa<sizeof(sink_3_168(cv_source())) == 8 * sizeof(long)> t8;
385     return 0;
386 }
387 
388 one   sink_3_178(               A&);
389 seven sink_3_178(volatile       A&&);
390 eight sink_3_178(const volatile A&&);
391 
392 int test3_178()
393 {
394                    A a;
395     const          A ca;
396           volatile A va;
397     const volatile A cva;
398     sa<sizeof(sink_3_178(a))           == 1 * sizeof(long)> t1;
399     sa<sizeof(sink_3_178(source()))    == 7 * sizeof(long)> t5;
400     sa<sizeof(sink_3_178(c_source()))  == 8 * sizeof(long)> t6;
401     sa<sizeof(sink_3_178(v_source()))  == 7 * sizeof(long)> t7;
402     sa<sizeof(sink_3_178(cv_source())) == 8 * sizeof(long)> t8;
403     return 0;
404 }
405 
406 two   sink_3_234(const          A&);
407 three sink_3_234(volatile       A&);
408 four  sink_3_234(const volatile A&);
409 
410 int test3_234()
411 {
412                    A a;
413     const          A ca;
414           volatile A va;
415     const volatile A cva;
416     sa<sizeof(sink_3_234(ca))          == 2 * sizeof(long)> t2;
417     sa<sizeof(sink_3_234(va))          == 3 * sizeof(long)> t3;
418     sa<sizeof(sink_3_234(cva))         == 4 * sizeof(long)> t4;
419     sa<sizeof(sink_3_234(source()))    == 2 * sizeof(long)> t5;
420     sa<sizeof(sink_3_234(c_source()))  == 2 * sizeof(long)> t6;
421     return 0;
422 }
423 
424 two   sink_3_235(const          A&);
425 three sink_3_235(volatile       A&);
426 five  sink_3_235(               A&&);
427 
428 int test3_235()
429 {
430                    A a;
431     const          A ca;
432           volatile A va;
433     const volatile A cva;
434     sa<sizeof(sink_3_235(ca))          == 2 * sizeof(long)> t2;
435     sa<sizeof(sink_3_235(va))          == 3 * sizeof(long)> t3;
436     sa<sizeof(sink_3_235(source()))    == 5 * sizeof(long)> t5;
437     sa<sizeof(sink_3_235(c_source()))  == 2 * sizeof(long)> t6;
438     return 0;
439 }
440 
441 two   sink_3_236(const          A&);
442 three sink_3_236(volatile       A&);
443 six   sink_3_236(const          A&&);
444 
445 int test3_236()
446 {
447                    A a;
448     const          A ca;
449           volatile A va;
450     const volatile A cva;
451     sa<sizeof(sink_3_236(ca))          == 2 * sizeof(long)> t2;
452     sa<sizeof(sink_3_236(va))          == 3 * sizeof(long)> t3;
453     sa<sizeof(sink_3_236(source()))    == 6 * sizeof(long)> t5;
454     sa<sizeof(sink_3_236(c_source()))  == 6 * sizeof(long)> t6;
455     return 0;
456 }
457 
458 two   sink_3_237(const          A&);
459 three sink_3_237(volatile       A&);
460 seven sink_3_237(volatile       A&&);
461 
462 int test3_237()
463 {
464                    A a;
465     const          A ca;
466           volatile A va;
467     const volatile A cva;
468     sa<sizeof(sink_3_237(ca))          == 2 * sizeof(long)> t2;
469     sa<sizeof(sink_3_237(va))          == 3 * sizeof(long)> t3;
470     sa<sizeof(sink_3_237(source()))    == 7 * sizeof(long)> t5;
471     sa<sizeof(sink_3_237(c_source()))  == 2 * sizeof(long)> t6;
472     sa<sizeof(sink_3_237(v_source()))  == 7 * sizeof(long)> t7;
473     return 0;
474 }
475 
476 two   sink_3_238(const          A&);
477 three sink_3_238(volatile       A&);
478 eight sink_3_238(const volatile A&&);
479 
480 int test3_238()
481 {
482                    A a;
483     const          A ca;
484           volatile A va;
485     const volatile A cva;
486     sa<sizeof(sink_3_238(ca))          == 2 * sizeof(long)> t2;
487     sa<sizeof(sink_3_238(va))          == 3 * sizeof(long)> t3;
488     sa<sizeof(sink_3_238(source()))    == 8 * sizeof(long)> t5;
489     sa<sizeof(sink_3_238(c_source()))  == 8 * sizeof(long)> t6;
490     sa<sizeof(sink_3_238(v_source()))  == 8 * sizeof(long)> t7;
491     sa<sizeof(sink_3_238(cv_source())) == 8 * sizeof(long)> t8;
492     return 0;
493 }
494 
495 two   sink_3_245(const          A&);
496 four  sink_3_245(const volatile A&);
497 five  sink_3_245(               A&&);
498 
499 int test3_245()
500 {
501                    A a;
502     const          A ca;
503           volatile A va;
504     const volatile A cva;
505     sa<sizeof(sink_3_245(a))           == 2 * sizeof(long)> t1;
506     sa<sizeof(sink_3_245(ca))          == 2 * sizeof(long)> t2;
507     sa<sizeof(sink_3_245(va))          == 4 * sizeof(long)> t3;
508     sa<sizeof(sink_3_245(cva))         == 4 * sizeof(long)> t4;
509     sa<sizeof(sink_3_245(source()))    == 5 * sizeof(long)> t5;
510     sa<sizeof(sink_3_245(c_source()))  == 2 * sizeof(long)> t6;
511     return 0;
512 }
513 
514 two   sink_3_246(const          A&);
515 four  sink_3_246(const volatile A&);
516 six   sink_3_246(const          A&&);
517 
518 int test3_246()
519 {
520                    A a;
521     const          A ca;
522           volatile A va;
523     const volatile A cva;
524     sa<sizeof(sink_3_246(a))           == 2 * sizeof(long)> t1;
525     sa<sizeof(sink_3_246(ca))          == 2 * sizeof(long)> t2;
526     sa<sizeof(sink_3_246(va))          == 4 * sizeof(long)> t3;
527     sa<sizeof(sink_3_246(cva))         == 4 * sizeof(long)> t4;
528     sa<sizeof(sink_3_246(source()))    == 6 * sizeof(long)> t5;
529     sa<sizeof(sink_3_246(c_source()))  == 6 * sizeof(long)> t6;
530     return 0;
531 }
532 
533 two   sink_3_247(const          A&);
534 four  sink_3_247(const volatile A&);
535 seven sink_3_247(volatile       A&&);
536 
537 int test3_247()
538 {
539                    A a;
540     const          A ca;
541           volatile A va;
542     const volatile A cva;
543     sa<sizeof(sink_3_247(a))           == 2 * sizeof(long)> t1;
544     sa<sizeof(sink_3_247(ca))          == 2 * sizeof(long)> t2;
545     sa<sizeof(sink_3_247(va))          == 4 * sizeof(long)> t3;
546     sa<sizeof(sink_3_247(cva))         == 4 * sizeof(long)> t4;
547     sa<sizeof(sink_3_247(source()))    == 7 * sizeof(long)> t5;
548     sa<sizeof(sink_3_247(c_source()))  == 2 * sizeof(long)> t6;
549     sa<sizeof(sink_3_247(v_source()))  == 7 * sizeof(long)> t7;
550     return 0;
551 }
552 
553 two   sink_3_248(const          A&);
554 four  sink_3_248(const volatile A&);
555 eight sink_3_248(const volatile A&&);
556 
557 int test3_248()
558 {
559                    A a;
560     const          A ca;
561           volatile A va;
562     const volatile A cva;
563     sa<sizeof(sink_3_248(a))           == 2 * sizeof(long)> t1;
564     sa<sizeof(sink_3_248(ca))          == 2 * sizeof(long)> t2;
565     sa<sizeof(sink_3_248(va))          == 4 * sizeof(long)> t3;
566     sa<sizeof(sink_3_248(cva))         == 4 * sizeof(long)> t4;
567     sa<sizeof(sink_3_248(source()))    == 8 * sizeof(long)> t5;
568     sa<sizeof(sink_3_248(c_source()))  == 8 * sizeof(long)> t6;
569     sa<sizeof(sink_3_248(v_source()))  == 8 * sizeof(long)> t7;
570     sa<sizeof(sink_3_248(cv_source())) == 8 * sizeof(long)> t8;
571     return 0;
572 }
573 
574 two   sink_3_256(const          A&);
575 five  sink_3_256(               A&&);
576 six   sink_3_256(const          A&&);
577 
578 int test3_256()
579 {
580                    A a;
581     const          A ca;
582           volatile A va;
583     const volatile A cva;
584     sa<sizeof(sink_3_256(a))           == 2 * sizeof(long)> t1;
585     sa<sizeof(sink_3_256(ca))          == 2 * sizeof(long)> t2;
586     sa<sizeof(sink_3_256(source()))    == 5 * sizeof(long)> t5;
587     sa<sizeof(sink_3_256(c_source()))  == 6 * sizeof(long)> t6;
588     return 0;
589 }
590 
591 two   sink_3_257(const          A&);
592 five  sink_3_257(               A&&);
593 seven sink_3_257(volatile       A&&);
594 
595 int test3_257()
596 {
597                    A a;
598     const          A ca;
599           volatile A va;
600     const volatile A cva;
601     sa<sizeof(sink_3_257(a))           == 2 * sizeof(long)> t1;
602     sa<sizeof(sink_3_257(ca))          == 2 * sizeof(long)> t2;
603     sa<sizeof(sink_3_257(source()))    == 5 * sizeof(long)> t5;
604     sa<sizeof(sink_3_257(c_source()))  == 2 * sizeof(long)> t6;
605     sa<sizeof(sink_3_257(v_source()))  == 7 * sizeof(long)> t7;
606     return 0;
607 }
608 
609 two   sink_3_258(const          A&);
610 five  sink_3_258(               A&&);
611 eight sink_3_258(const volatile A&&);
612 
613 int test3_258()
614 {
615                    A a;
616     const          A ca;
617           volatile A va;
618     const volatile A cva;
619     sa<sizeof(sink_3_258(a))           == 2 * sizeof(long)> t1;
620     sa<sizeof(sink_3_258(ca))          == 2 * sizeof(long)> t2;
621     sa<sizeof(sink_3_258(source()))    == 5 * sizeof(long)> t5;
622     sa<sizeof(sink_3_258(c_source()))  == 8 * sizeof(long)> t6;
623     sa<sizeof(sink_3_258(v_source()))  == 8 * sizeof(long)> t7;
624     sa<sizeof(sink_3_258(cv_source())) == 8 * sizeof(long)> t8;
625     return 0;
626 }
627 
628 two   sink_3_267(const          A&);
629 six   sink_3_267(const          A&&);
630 seven sink_3_267(volatile       A&&);
631 
632 int test3_267()
633 {
634                    A a;
635     const          A ca;
636           volatile A va;
637     const volatile A cva;
638     sa<sizeof(sink_3_267(a))           == 2 * sizeof(long)> t1;
639     sa<sizeof(sink_3_267(ca))          == 2 * sizeof(long)> t2;
640     sa<sizeof(sink_3_267(c_source()))  == 6 * sizeof(long)> t6;
641     sa<sizeof(sink_3_267(v_source()))  == 7 * sizeof(long)> t7;
642     return 0;
643 }
644 
645 two   sink_3_268(const          A&);
646 six   sink_3_268(const          A&&);
647 eight sink_3_268(const volatile A&&);
648 
649 int test3_268()
650 {
651                    A a;
652     const          A ca;
653           volatile A va;
654     const volatile A cva;
655     sa<sizeof(sink_3_268(a))           == 2 * sizeof(long)> t1;
656     sa<sizeof(sink_3_268(ca))          == 2 * sizeof(long)> t2;
657     sa<sizeof(sink_3_268(source()))    == 6 * sizeof(long)> t5;
658     sa<sizeof(sink_3_268(c_source()))  == 6 * sizeof(long)> t6;
659     sa<sizeof(sink_3_268(v_source()))  == 8 * sizeof(long)> t7;
660     sa<sizeof(sink_3_268(cv_source())) == 8 * sizeof(long)> t8;
661     return 0;
662 }
663 
664 two   sink_3_278(const          A&);
665 seven sink_3_278(volatile       A&&);
666 eight sink_3_278(const volatile A&&);
667 
668 int test3_278()
669 {
670                    A a;
671     const          A ca;
672           volatile A va;
673     const volatile A cva;
674     sa<sizeof(sink_3_278(a))           == 2 * sizeof(long)> t1;
675     sa<sizeof(sink_3_278(ca))          == 2 * sizeof(long)> t2;
676     sa<sizeof(sink_3_278(source()))    == 7 * sizeof(long)> t5;
677     sa<sizeof(sink_3_278(c_source()))  == 8 * sizeof(long)> t6;
678     sa<sizeof(sink_3_278(v_source()))  == 7 * sizeof(long)> t7;
679     sa<sizeof(sink_3_278(cv_source())) == 8 * sizeof(long)> t8;
680     return 0;
681 }
682 
683 three sink_3_345(volatile       A&);
684 four  sink_3_345(const volatile A&);
685 five  sink_3_345(               A&&);
686 
687 int test3_345()
688 {
689                    A a;
690     const          A ca;
691           volatile A va;
692     const volatile A cva;
693     sa<sizeof(sink_3_345(a))           == 3 * sizeof(long)> t1;
694     sa<sizeof(sink_3_345(ca))          == 4 * sizeof(long)> t2;
695     sa<sizeof(sink_3_345(va))          == 3 * sizeof(long)> t3;
696     sa<sizeof(sink_3_345(cva))         == 4 * sizeof(long)> t4;
697     sa<sizeof(sink_3_345(source()))    == 5 * sizeof(long)> t5;
698     return 0;
699 }
700 
701 three sink_3_346(volatile       A&);
702 four  sink_3_346(const volatile A&);
703 six   sink_3_346(const          A&&);
704 
705 int test3_346()
706 {
707                    A a;
708     const          A ca;
709           volatile A va;
710     const volatile A cva;
711     sa<sizeof(sink_3_346(a))           == 3 * sizeof(long)> t1;
712     sa<sizeof(sink_3_346(ca))          == 4 * sizeof(long)> t2;
713     sa<sizeof(sink_3_346(va))          == 3 * sizeof(long)> t3;
714     sa<sizeof(sink_3_346(cva))         == 4 * sizeof(long)> t4;
715     sa<sizeof(sink_3_346(source()))    == 6 * sizeof(long)> t5;
716     sa<sizeof(sink_3_346(c_source()))  == 6 * sizeof(long)> t6;
717     return 0;
718 }
719 
720 three sink_3_347(volatile       A&);
721 four  sink_3_347(const volatile A&);
722 seven sink_3_347(volatile       A&&);
723 
724 int test3_347()
725 {
726                    A a;
727     const          A ca;
728           volatile A va;
729     const volatile A cva;
730     sa<sizeof(sink_3_347(a))           == 3 * sizeof(long)> t1;
731     sa<sizeof(sink_3_347(ca))          == 4 * sizeof(long)> t2;
732     sa<sizeof(sink_3_347(va))          == 3 * sizeof(long)> t3;
733     sa<sizeof(sink_3_347(cva))         == 4 * sizeof(long)> t4;
734     sa<sizeof(sink_3_347(source()))    == 7 * sizeof(long)> t5;
735     sa<sizeof(sink_3_347(v_source()))  == 7 * sizeof(long)> t7;
736     return 0;
737 }
738 
739 three sink_3_348(volatile       A&);
740 four  sink_3_348(const volatile A&);
741 eight sink_3_348(const volatile A&&);
742 
743 int test3_348()
744 {
745                    A a;
746     const          A ca;
747           volatile A va;
748     const volatile A cva;
749     sa<sizeof(sink_3_348(a))           == 3 * sizeof(long)> t1;
750     sa<sizeof(sink_3_348(ca))          == 4 * sizeof(long)> t2;
751     sa<sizeof(sink_3_348(va))          == 3 * sizeof(long)> t3;
752     sa<sizeof(sink_3_348(cva))         == 4 * sizeof(long)> t4;
753     sa<sizeof(sink_3_348(source()))    == 8 * sizeof(long)> t5;
754     sa<sizeof(sink_3_348(c_source()))  == 8 * sizeof(long)> t6;
755     sa<sizeof(sink_3_348(v_source()))  == 8 * sizeof(long)> t7;
756     sa<sizeof(sink_3_348(cv_source())) == 8 * sizeof(long)> t8;
757     return 0;
758 }
759 
760 three sink_3_356(volatile       A&);
761 five  sink_3_356(               A&&);
762 six   sink_3_356(const          A&&);
763 
764 int test3_356()
765 {
766                    A a;
767     const          A ca;
768           volatile A va;
769     const volatile A cva;
770     sa<sizeof(sink_3_356(a))           == 3 * sizeof(long)> t1;
771     sa<sizeof(sink_3_356(va))          == 3 * sizeof(long)> t3;
772     sa<sizeof(sink_3_356(source()))    == 5 * sizeof(long)> t5;
773     sa<sizeof(sink_3_356(c_source()))  == 6 * sizeof(long)> t6;
774     return 0;
775 }
776 
777 three sink_3_357(volatile       A&);
778 five  sink_3_357(               A&&);
779 seven sink_3_357(volatile       A&&);
780 
781 int test3_357()
782 {
783                    A a;
784     const          A ca;
785           volatile A va;
786     const volatile A cva;
787     sa<sizeof(sink_3_357(a))           == 3 * sizeof(long)> t1;
788     sa<sizeof(sink_3_357(va))          == 3 * sizeof(long)> t3;
789     sa<sizeof(sink_3_357(source()))    == 5 * sizeof(long)> t5;
790     sa<sizeof(sink_3_357(v_source()))  == 7 * sizeof(long)> t7;
791     return 0;
792 }
793 
794 three sink_3_358(volatile       A&);
795 five  sink_3_358(               A&&);
796 eight sink_3_358(const volatile A&&);
797 
798 int test3_358()
799 {
800                    A a;
801     const          A ca;
802           volatile A va;
803     const volatile A cva;
804     sa<sizeof(sink_3_358(a))           == 3 * sizeof(long)> t1;
805     sa<sizeof(sink_3_358(va))          == 3 * sizeof(long)> t3;
806     sa<sizeof(sink_3_358(source()))    == 5 * sizeof(long)> t5;
807     sa<sizeof(sink_3_358(c_source()))  == 8 * sizeof(long)> t6;
808     sa<sizeof(sink_3_358(v_source()))  == 8 * sizeof(long)> t7;
809     sa<sizeof(sink_3_358(cv_source())) == 8 * sizeof(long)> t8;
810     return 0;
811 }
812 
813 three sink_3_367(volatile       A&);
814 six   sink_3_367(const          A&&);
815 seven sink_3_367(volatile       A&&);
816 
817 int test3_367()
818 {
819                    A a;
820     const          A ca;
821           volatile A va;
822     const volatile A cva;
823     sa<sizeof(sink_3_367(a))           == 3 * sizeof(long)> t1;
824     sa<sizeof(sink_3_367(va))          == 3 * sizeof(long)> t3;
825     sa<sizeof(sink_3_367(c_source()))  == 6 * sizeof(long)> t6;
826     sa<sizeof(sink_3_367(v_source()))  == 7 * sizeof(long)> t7;
827     return 0;
828 }
829 
830 three sink_3_368(volatile       A&);
831 six   sink_3_368(const          A&&);
832 eight sink_3_368(const volatile A&&);
833 
834 int test3_368()
835 {
836                    A a;
837     const          A ca;
838           volatile A va;
839     const volatile A cva;
840     sa<sizeof(sink_3_368(a))           == 3 * sizeof(long)> t1;
841     sa<sizeof(sink_3_368(va))          == 3 * sizeof(long)> t3;
842     sa<sizeof(sink_3_368(source()))    == 6 * sizeof(long)> t5;
843     sa<sizeof(sink_3_368(c_source()))  == 6 * sizeof(long)> t6;
844     sa<sizeof(sink_3_368(v_source()))  == 8 * sizeof(long)> t7;
845     sa<sizeof(sink_3_368(cv_source())) == 8 * sizeof(long)> t8;
846     return 0;
847 }
848 
849 three sink_3_378(volatile       A&);
850 seven sink_3_378(volatile       A&&);
851 eight sink_3_378(const volatile A&&);
852 
853 int test3_378()
854 {
855                    A a;
856     const          A ca;
857           volatile A va;
858     const volatile A cva;
859     sa<sizeof(sink_3_378(a))           == 3 * sizeof(long)> t1;
860     sa<sizeof(sink_3_378(va))          == 3 * sizeof(long)> t3;
861     sa<sizeof(sink_3_378(source()))    == 7 * sizeof(long)> t5;
862     sa<sizeof(sink_3_378(c_source()))  == 8 * sizeof(long)> t6;
863     sa<sizeof(sink_3_378(v_source()))  == 7 * sizeof(long)> t7;
864     sa<sizeof(sink_3_378(cv_source())) == 8 * sizeof(long)> t8;
865     return 0;
866 }
867 
868 four  sink_3_456(const volatile A&);
869 five  sink_3_456(               A&&);
870 six   sink_3_456(const          A&&);
871 
872 int test3_456()
873 {
874                    A a;
875     const          A ca;
876           volatile A va;
877     const volatile A cva;
878     sa<sizeof(sink_3_456(a))           == 4 * sizeof(long)> t1;
879     sa<sizeof(sink_3_456(ca))          == 4 * sizeof(long)> t2;
880     sa<sizeof(sink_3_456(va))          == 4 * sizeof(long)> t3;
881     sa<sizeof(sink_3_456(cva))         == 4 * sizeof(long)> t4;
882     sa<sizeof(sink_3_456(source()))    == 5 * sizeof(long)> t5;
883     sa<sizeof(sink_3_456(c_source()))  == 6 * sizeof(long)> t6;
884     return 0;
885 }
886 
887 four  sink_3_457(const volatile A&);
888 five  sink_3_457(               A&&);
889 seven sink_3_457(volatile       A&&);
890 
891 int test3_457()
892 {
893                    A a;
894     const          A ca;
895           volatile A va;
896     const volatile A cva;
897     sa<sizeof(sink_3_457(a))           == 4 * sizeof(long)> t1;
898     sa<sizeof(sink_3_457(ca))          == 4 * sizeof(long)> t2;
899     sa<sizeof(sink_3_457(va))          == 4 * sizeof(long)> t3;
900     sa<sizeof(sink_3_457(cva))         == 4 * sizeof(long)> t4;
901     sa<sizeof(sink_3_457(source()))    == 5 * sizeof(long)> t5;
902     sa<sizeof(sink_3_457(v_source()))  == 7 * sizeof(long)> t7;
903     return 0;
904 }
905 
906 four  sink_3_458(const volatile A&);
907 five  sink_3_458(               A&&);
908 eight sink_3_458(const volatile A&&);
909 
910 int test3_458()
911 {
912                    A a;
913     const          A ca;
914           volatile A va;
915     const volatile A cva;
916     sa<sizeof(sink_3_458(a))           == 4 * sizeof(long)> t1;
917     sa<sizeof(sink_3_458(ca))          == 4 * sizeof(long)> t2;
918     sa<sizeof(sink_3_458(va))          == 4 * sizeof(long)> t3;
919     sa<sizeof(sink_3_458(cva))         == 4 * sizeof(long)> t4;
920     sa<sizeof(sink_3_458(source()))    == 5 * sizeof(long)> t5;
921     sa<sizeof(sink_3_458(c_source()))  == 8 * sizeof(long)> t6;
922     sa<sizeof(sink_3_458(v_source()))  == 8 * sizeof(long)> t7;
923     sa<sizeof(sink_3_458(cv_source())) == 8 * sizeof(long)> t8;
924     return 0;
925 }
926 
927 four  sink_3_467(const volatile A&);
928 six   sink_3_467(const          A&&);
929 seven sink_3_467(volatile       A&&);
930 
931 int test3_467()
932 {
933                    A a;
934     const          A ca;
935           volatile A va;
936     const volatile A cva;
937     sa<sizeof(sink_3_467(a))           == 4 * sizeof(long)> t1;
938     sa<sizeof(sink_3_467(ca))          == 4 * sizeof(long)> t2;
939     sa<sizeof(sink_3_467(va))          == 4 * sizeof(long)> t3;
940     sa<sizeof(sink_3_467(cva))         == 4 * sizeof(long)> t4;
941     sa<sizeof(sink_3_467(c_source()))  == 6 * sizeof(long)> t6;
942     sa<sizeof(sink_3_467(v_source()))  == 7 * sizeof(long)> t7;
943     return 0;
944 }
945 
946 four  sink_3_468(const volatile A&);
947 six   sink_3_468(const          A&&);
948 eight sink_3_468(const volatile A&&);
949 
950 int test3_468()
951 {
952                    A a;
953     const          A ca;
954           volatile A va;
955     const volatile A cva;
956     sa<sizeof(sink_3_468(a))           == 4 * sizeof(long)> t1;
957     sa<sizeof(sink_3_468(ca))          == 4 * sizeof(long)> t2;
958     sa<sizeof(sink_3_468(va))          == 4 * sizeof(long)> t3;
959     sa<sizeof(sink_3_468(cva))         == 4 * sizeof(long)> t4;
960     sa<sizeof(sink_3_468(source()))    == 6 * sizeof(long)> t5;
961     sa<sizeof(sink_3_468(c_source()))  == 6 * sizeof(long)> t6;
962     sa<sizeof(sink_3_468(v_source()))  == 8 * sizeof(long)> t7;
963     sa<sizeof(sink_3_468(cv_source())) == 8 * sizeof(long)> t8;
964     return 0;
965 }
966 
967 four  sink_3_478(const volatile A&);
968 seven sink_3_478(volatile       A&&);
969 eight sink_3_478(const volatile A&&);
970 
971 int test3_478()
972 {
973                    A a;
974     const          A ca;
975           volatile A va;
976     const volatile A cva;
977     sa<sizeof(sink_3_478(a))           == 4 * sizeof(long)> t1;
978     sa<sizeof(sink_3_478(ca))          == 4 * sizeof(long)> t2;
979     sa<sizeof(sink_3_478(va))          == 4 * sizeof(long)> t3;
980     sa<sizeof(sink_3_478(cva))         == 4 * sizeof(long)> t4;
981     sa<sizeof(sink_3_478(source()))    == 7 * sizeof(long)> t5;
982     sa<sizeof(sink_3_478(c_source()))  == 8 * sizeof(long)> t6;
983     sa<sizeof(sink_3_478(v_source()))  == 7 * sizeof(long)> t7;
984     sa<sizeof(sink_3_478(cv_source())) == 8 * sizeof(long)> t8;
985     return 0;
986 }
987 
988 five  sink_3_567(               A&&);
989 six   sink_3_567(const          A&&);
990 seven sink_3_567(volatile       A&&);
991 
992 int test3_567()
993 {
994                    A a;
995     const          A ca;
996           volatile A va;
997     const volatile A cva;
998     sa<sizeof(sink_3_567(source()))    == 5 * sizeof(long)> t5;
999     sa<sizeof(sink_3_567(c_source()))  == 6 * sizeof(long)> t6;
1000     sa<sizeof(sink_3_567(v_source()))  == 7 * sizeof(long)> t7;
1001     return 0;
1002 }
1003 
1004 five  sink_3_568(               A&&);
1005 six   sink_3_568(const          A&&);
1006 eight sink_3_568(const volatile A&&);
1007 
1008 int test3_568()
1009 {
1010                    A a;
1011     const          A ca;
1012           volatile A va;
1013     const volatile A cva;
1014     sa<sizeof(sink_3_568(source()))    == 5 * sizeof(long)> t5;
1015     sa<sizeof(sink_3_568(c_source()))  == 6 * sizeof(long)> t6;
1016     sa<sizeof(sink_3_568(v_source()))  == 8 * sizeof(long)> t7;
1017     sa<sizeof(sink_3_568(cv_source())) == 8 * sizeof(long)> t8;
1018     return 0;
1019 }
1020 
1021 five  sink_3_578(               A&&);
1022 seven sink_3_578(volatile       A&&);
1023 eight sink_3_578(const volatile A&&);
1024 
1025 int test3_578()
1026 {
1027                    A a;
1028     const          A ca;
1029           volatile A va;
1030     const volatile A cva;
1031     sa<sizeof(sink_3_578(source()))    == 5 * sizeof(long)> t5;
1032     sa<sizeof(sink_3_578(c_source()))  == 8 * sizeof(long)> t6;
1033     sa<sizeof(sink_3_578(v_source()))  == 7 * sizeof(long)> t7;
1034     sa<sizeof(sink_3_578(cv_source())) == 8 * sizeof(long)> t8;
1035     return 0;
1036 }
1037 
1038 six   sink_3_678(const          A&&);
1039 seven sink_3_678(volatile       A&&);
1040 eight sink_3_678(const volatile A&&);
1041 
1042 int test3_678()
1043 {
1044                    A a;
1045     const          A ca;
1046           volatile A va;
1047     const volatile A cva;
1048     sa<sizeof(sink_3_678(c_source()))  == 6 * sizeof(long)> t6;
1049     sa<sizeof(sink_3_678(v_source()))  == 7 * sizeof(long)> t7;
1050     sa<sizeof(sink_3_678(cv_source())) == 8 * sizeof(long)> t8;
1051     return 0;
1052 }
1053 
1054 int main()
1055 {
1056     return test3_123() + test3_124() + test3_125() + test3_126() +
1057            test3_127() + test3_128() + test3_134() + test3_135() +
1058            test3_136() + test3_137() + test3_138() + test3_145() +
1059            test3_146() + test3_147() + test3_148() + test3_156() +
1060            test3_157() + test3_158() + test3_167() + test3_168() +
1061            test3_178() + test3_234() + test3_235() + test3_236() +
1062            test3_237() + test3_238() + test3_245() + test3_246() +
1063            test3_247() + test3_248() + test3_256() + test3_257() +
1064            test3_258() + test3_267() + test3_268() + test3_278() +
1065            test3_345() + test3_346() + test3_347() + test3_348() +
1066            test3_356() + test3_357() + test3_358() + test3_367() +
1067            test3_368() + test3_378() + test3_456() + test3_457() +
1068            test3_458() + test3_467() + test3_468() + test3_478() +
1069            test3_567() + test3_568() + test3_578() + test3_678();
1070 }
1071