Add execution tests of ARM EXT intrinsics
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / rv3n.C
blob8a1730b61ef01096809673ec9c2715065288bc51
1 // I, Howard Hinnant, hereby place this code in the public domain.
3 // Test overload resolution among reference types
5 // { dg-do compile { target c++11 } }
6 // { dg-options "" }
8 template <bool> struct sa;
9 template <> struct sa<true> {};
11 struct one   {char x[1];};
12 struct two   {char x[2];};
13 struct three {char x[3];};
14 struct four  {char x[4];};
15 struct five  {char x[5];};
16 struct six   {char x[6];};
17 struct seven {char x[7];};
18 struct eight {char x[8];};
20 struct A
22     A();
23     A(const volatile A&&);
26                A    source();
27 const          A  c_source();
28       volatile A  v_source();
29 const volatile A cv_source();
31 // 3 at a time
33 one   sink_3_123(               A&);
34 two   sink_3_123(const          A&);
35 three sink_3_123(volatile       A&);
37 int test3_123()
39                    A a;
40     const          A ca = a; // { dg-error "deleted" }
41           volatile A va;
42     const volatile A cva = a; // { dg-error "deleted" }
43     sink_3_123(cva);          // { dg-error "" }
44     sink_3_123(v_source());   // { dg-error "" }
45     sink_3_123(cv_source());  // { dg-error "" }
46     return 0;
49 one   sink_3_125(               A&);
50 two   sink_3_125(const          A&);
51 five  sink_3_125(               A&&);
53 one   sink_3_124(               A&);
54 two   sink_3_124(const          A&);
55 four  sink_3_124(const volatile A&);
57 int test3_124()
59                    A a;
60     const          A ca = a; // { dg-error "deleted" }
61           volatile A va;
62     const volatile A cva = a; // { dg-error "deleted" }
63     sink_3_124(v_source());   // { dg-error "" }
64     sink_3_124(cv_source());  // { dg-error "" }
65     return 0;
68 int test3_125()
70                    A a;
71     const          A ca = a; // { dg-error "deleted" }
72           volatile A va;
73     const volatile A cva = a; // { dg-error "deleted" }
74     sink_3_125(va);           // { dg-error "" }
75     sink_3_125(cva);          // { dg-error "" }
76     sink_3_125(v_source());   // { dg-error "" }
77     sink_3_125(cv_source());  // { dg-error "" }
78     return 0;
81 one   sink_3_126(               A&);
82 two   sink_3_126(const          A&);
83 six   sink_3_126(const          A&&);
85 int test3_126()
87                    A a;
88     const          A ca = a; // { dg-error "deleted" }
89           volatile A va;
90     const volatile A cva = a; // { dg-error "deleted" }
91     sink_3_126(va);           // { dg-error "" }
92     sink_3_126(cva);          // { dg-error "" }
93     sink_3_126(v_source());   // { dg-error "" }
94     sink_3_126(cv_source());  // { dg-error "" }
95     return 0;
98 one   sink_3_127(               A&);
99 two   sink_3_127(const          A&);
100 seven sink_3_127(volatile       A&&);
102 int test3_127()
104                    A a;
105     const          A ca = a; // { dg-error "deleted" }
106           volatile A va;
107     const volatile A cva = a; // { dg-error "deleted" }
108     sink_3_127(va);             // { dg-error "" }
109     sink_3_127(cva);          // { dg-error "" }
110     sink_3_127(cv_source());  // { dg-error "" }
111     return 0;
114 one   sink_3_128(               A&);
115 two   sink_3_128(const          A&);
116 eight sink_3_128(const volatile A&&);
118 int test3_128()
120                    A a;
121     const          A ca = a; // { dg-error "deleted" }
122           volatile A va;
123     const volatile A cva = a; // { dg-error "deleted" }
125     sink_3_128(va);             // { dg-error "" }
126     sink_3_128(cva);            // { dg-error "" }
129 one   sink_3_134(               A&);
130 three sink_3_134(volatile       A&);
131 four  sink_3_134(const volatile A&);
133 int test3_134()
135                    A a;
136     const          A ca = a; // { dg-error "deleted" }
137           volatile A va;
138     const volatile A cva = a; // { dg-error "deleted" }
139     sink_3_134(source());     // { dg-error "" }
140     sink_3_134(c_source());   // { dg-error "" }
141     sink_3_134(v_source());   // { dg-error "" }
142     sink_3_134(cv_source());  // { dg-error "" }
143     return 0;
146 one   sink_3_135(               A&);
147 three sink_3_135(volatile       A&);
148 five  sink_3_135(               A&&);
150 int test3_135()
152                    A a;
153     const          A ca = a; // { dg-error "deleted" }
154           volatile A va;
155     const volatile A cva = a; // { dg-error "deleted" }
156     sink_3_135(ca);           // { dg-error "" }
157     sink_3_135(cva);          // { dg-error "" }
158     sink_3_135(c_source());   // { dg-error "" }
159     sink_3_135(v_source());   // { dg-error "" }
160     sink_3_135(cv_source());  // { dg-error "" }
161     return 0;
164 one   sink_3_136(               A&);
165 three sink_3_136(volatile       A&);
166 six   sink_3_136(const          A&&);
168 int test3_136()
170                    A a;
171     const          A ca = a; // { dg-error "deleted" }
172           volatile A va;
173     const volatile A cva = a; // { dg-error "deleted" }
174     sink_3_136(ca);             // { dg-error "" }
175     sink_3_136(cva);          // { dg-error "" }
176     sink_3_136(v_source());   // { dg-error "" }
177     sink_3_136(cv_source());  // { dg-error "" }
178     return 0;
181 one   sink_3_137(               A&);
182 three sink_3_137(volatile       A&);
183 seven sink_3_137(volatile       A&&);
185 int test3_137()
187                    A a;
188     const          A ca = a; // { dg-error "deleted" }
189           volatile A va;
190     const volatile A cva = a; // { dg-error "deleted" }
191     sink_3_137(ca);           // { dg-error "" }
192     sink_3_137(cva);          // { dg-error "" }
193     sink_3_137(c_source());   // { dg-error "" }
194     sink_3_137(cv_source());  // { dg-error "" }
195     return 0;
198 one   sink_3_138(               A&);
199 three sink_3_138(volatile       A&);
200 eight sink_3_138(const volatile A&&);
202 int test3_138()
204                    A a;
205     const          A ca = a; // { dg-error "deleted" }
206           volatile A va;
207     const volatile A cva = a; // { dg-error "deleted" }
208     sink_3_138(ca);             // { dg-error "" }
209     sink_3_138(cva);            // { dg-error "" }
210     return 0;
213 one   sink_3_145(               A&);
214 four  sink_3_145(const volatile A&);
215 five  sink_3_145(               A&&);
217 int test3_145()
219                    A a;
220     const          A ca = a; // { dg-error "deleted" }
221           volatile A va;
222     const volatile A cva = a; // { dg-error "deleted" }
223     sink_3_145(c_source());   // { dg-error "" }
224     sink_3_145(v_source());   // { dg-error "" }
225     sink_3_145(cv_source());  // { dg-error "" }
226     return 0;
229 one   sink_3_146(               A&);
230 four  sink_3_146(const volatile A&);
231 six   sink_3_146(const          A&&);
233 int test3_146()
235                    A a;
236     const          A ca = a; // { dg-error "deleted" }
237           volatile A va;
238     const volatile A cva = a; // { dg-error "deleted" }
239     sink_3_146(v_source());   // { dg-error "" }
240     sink_3_146(cv_source());  // { dg-error "" }
241     return 0;
244 one   sink_3_147(               A&);
245 four  sink_3_147(const volatile A&);
246 seven sink_3_147(volatile       A&&);
248 int test3_147()
250                    A a;
251     const          A ca = a; // { dg-error "deleted" }
252           volatile A va;
253     const volatile A cva = a; // { dg-error "deleted" }
254     sink_3_147(c_source());   // { dg-error "" }
255     sink_3_147(cv_source());  // { dg-error "" }
256     return 0;
259 one   sink_3_156(               A&);
260 five  sink_3_156(               A&&);
261 six   sink_3_156(const          A&&);
263 int test3_156()
265                    A a;
266     const          A ca = a; // { dg-error "deleted" }
267           volatile A va;
268     const volatile A cva = a; // { dg-error "deleted" }
269     sink_3_156(ca);             // { dg-error "" }
270     sink_3_156(va);           // { dg-error "" }
271     sink_3_156(cva);          // { dg-error "" }
272     sink_3_156(v_source());   // { dg-error "" }
273     sink_3_156(cv_source());  // { dg-error "" }
274     return 0;
277 one   sink_3_157(               A&);
278 five  sink_3_157(               A&&);
279 seven sink_3_157(volatile       A&&);
281 int test3_157()
283                    A a;
284     const          A ca = a; // { dg-error "deleted" }
285           volatile A va;
286     const volatile A cva = a; // { dg-error "deleted" }
287     sink_3_157(ca);           // { dg-error "" }
288     sink_3_157(va);           // { dg-error "" }
289     sink_3_157(cva);          // { dg-error "" }
290     sink_3_157(c_source());   // { dg-error "" }
291     sink_3_157(cv_source());  // { dg-error "" }
292     return 0;
295 one   sink_3_158(               A&);
296 five  sink_3_158(               A&&);
297 eight sink_3_158(const volatile A&&);
299 int test3_158()
301                    A a;
302     const          A ca = a; // { dg-error "deleted" }
303           volatile A va;
304     const volatile A cva = a; // { dg-error "deleted" }
305     sink_3_158(ca);             // { dg-error "" }
306     sink_3_158(va);             // { dg-error "" }
307     sink_3_158(cva);            // { dg-error "" }
308     return 0;
311 one   sink_3_167(               A&);
312 six   sink_3_167(const          A&&);
313 seven sink_3_167(volatile       A&&);
315 int test3_167()
317                    A a;
318     const          A ca = a; // { dg-error "deleted" }
319           volatile A va;
320     const volatile A cva = a; // { dg-error "deleted" }
321     sink_3_167(ca);             // { dg-error "" }
322     sink_3_167(va);             // { dg-error "" }
323     sink_3_167(cva);          // { dg-error "" }
324     sink_3_167(source());     // { dg-error "" }
325     sink_3_167(cv_source());  // { dg-error "" }
326     return 0;
329 one   sink_3_168(               A&);
330 six   sink_3_168(const          A&&);
331 eight sink_3_168(const volatile A&&);
333 int test3_168()
335                    A a;
336     const          A ca = a; // { dg-error "deleted" }
337           volatile A va;
338     const volatile A cva = a; // { dg-error "deleted" }
339     sink_3_168(ca);             // { dg-error "" }
340     sink_3_168(va);             // { dg-error "" }
341     sink_3_168(cva);            // { dg-error "" }
342     return 0;
345 one   sink_3_178(               A&);
346 seven sink_3_178(volatile       A&&);
347 eight sink_3_178(const volatile A&&);
349 int test3_178()
351                    A a;
352     const          A ca = a; // { dg-error "deleted" }
353           volatile A va;
354     const volatile A cva = a; // { dg-error "deleted" }
355     sink_3_178(ca);             // { dg-error "" }
356     sink_3_178(va);             // { dg-error "" }
357     sink_3_178(cva);            // { dg-error "" }
358     return 0;
361 two   sink_3_234(const          A&);
362 three sink_3_234(volatile       A&);
363 four  sink_3_234(const volatile A&);
365 int test3_234()
367                    A a;
368     const          A ca = a; // { dg-error "deleted" }
369           volatile A va;
370     const volatile A cva = a; // { dg-error "deleted" }
371     sink_3_234(a);            // { dg-error "" }
372     sink_3_234(v_source());   // { dg-error "" }
373     sink_3_234(cv_source());  // { dg-error "" }
374     return 0;
377 two   sink_3_235(const          A&);
378 three sink_3_235(volatile       A&);
379 five  sink_3_235(               A&&);
381 int test3_235()
383                    A a;
384     const          A ca = a; // { dg-error "deleted" }
385           volatile A va;
386     const volatile A cva = a; // { dg-error "deleted" }
387     sink_3_235(a);            // { dg-error "" }
388     sink_3_235(cva);          // { dg-error "" }
389     sink_3_235(v_source());   // { dg-error "" }
390     sink_3_235(cv_source());  // { dg-error "" }
391     return 0;
394 two   sink_3_236(const          A&);
395 three sink_3_236(volatile       A&);
396 six   sink_3_236(const          A&&);
398 int test3_236()
400                    A a;
401     const          A ca = a; // { dg-error "deleted" }
402           volatile A va;
403     const volatile A cva = a; // { dg-error "deleted" }
404     sink_3_236(a);            // { dg-error "" }
405     sink_3_236(cva);          // { dg-error "" }
406     sink_3_236(v_source());   // { dg-error "" }
407     sink_3_236(cv_source());  // { dg-error "" }
408     return 0;
411 two   sink_3_237(const          A&);
412 three sink_3_237(volatile       A&);
413 seven sink_3_237(volatile       A&&);
415 int test3_237()
417                    A a;
418     const          A ca = a; // { dg-error "deleted" }
419           volatile A va;
420     const volatile A cva = a; // { dg-error "deleted" }
421     sink_3_237(a);            // { dg-error "" }
422     sink_3_237(cva);          // { dg-error "" }
423     sink_3_237(cv_source());  // { dg-error "" }
424     return 0;
427 two   sink_3_238(const          A&);
428 three sink_3_238(volatile       A&);
429 eight sink_3_238(const volatile A&&);
431 int test3_238()
433                    A a;
434     const          A ca = a; // { dg-error "deleted" }
435           volatile A va;
436     const volatile A cva = a; // { dg-error "deleted" }
437     sink_3_238(a);  // { dg-error "" }
438     sink_3_238(cva); // { dg-error "" }
439     return 0;
442 two   sink_3_245(const          A&);
443 four  sink_3_245(const volatile A&);
444 five  sink_3_245(               A&&);
446 int test3_245()
448                    A a;
449     const          A ca = a; // { dg-error "deleted" }
450           volatile A va;
451     const volatile A cva = a; // { dg-error "deleted" }
452     sink_3_245(v_source());   // { dg-error "" }
453     sink_3_245(cv_source());  // { dg-error "" }
454     return 0;
457 two   sink_3_246(const          A&);
458 four  sink_3_246(const volatile A&);
459 six   sink_3_246(const          A&&);
461 int test3_246()
463                    A a;
464     const          A ca = a; // { dg-error "deleted" }
465           volatile A va;
466     const volatile A cva = a; // { dg-error "deleted" }
467     sink_3_246(v_source());   // { dg-error "" }
468     sink_3_246(cv_source());  // { dg-error "" }
469     return 0;
472 two   sink_3_247(const          A&);
473 four  sink_3_247(const volatile A&);
474 seven sink_3_247(volatile       A&&);
476 int test3_247()
478                    A a;
479     const          A ca = a; // { dg-error "deleted" }
480           volatile A va;
481     const volatile A cva = a; // { dg-error "deleted" }
482     sink_3_247(cv_source());  // { dg-error "" }
483     return 0;
486 two   sink_3_256(const          A&);
487 five  sink_3_256(               A&&);
488 six   sink_3_256(const          A&&);
490 int test3_256()
492                    A a;
493     const          A ca = a; // { dg-error "deleted" }
494           volatile A va;
495     const volatile A cva = a; // { dg-error "deleted" }
496     sink_3_256(va);           // { dg-error "" }
497     sink_3_256(cva);          // { dg-error "" }
498     sink_3_256(v_source());   // { dg-error "" }
499     sink_3_256(cv_source());  // { dg-error "" }
500     return 0;
503 two   sink_3_257(const          A&);
504 five  sink_3_257(               A&&);
505 seven sink_3_257(volatile       A&&);
507 int test3_257()
509                    A a;
510     const          A ca = a; // { dg-error "deleted" }
511           volatile A va;
512     const volatile A cva = a; // { dg-error "deleted" }
513     sink_3_257(va);             // { dg-error "" }
514     sink_3_257(cva);          // { dg-error "" }
515     sink_3_257(cv_source());  // { dg-error "" }
516     return 0;
519 two   sink_3_258(const          A&);
520 five  sink_3_258(               A&&);
521 eight sink_3_258(const volatile A&&);
523 int test3_258()
525                    A a;
526     const          A ca = a; // { dg-error "deleted" }
527           volatile A va;
528     const volatile A cva = a; // { dg-error "deleted" }
529     sink_3_258(va);             // { dg-error "" }
530     sink_3_258(cva);            // { dg-error "" }
531     return 0;
534 two   sink_3_267(const          A&);
535 six   sink_3_267(const          A&&);
536 seven sink_3_267(volatile       A&&);
538 int test3_267()
540                    A a;
541     const          A ca = a; // { dg-error "deleted" }
542           volatile A va;
543     const volatile A cva = a; // { dg-error "deleted" }
544     sink_3_267(va);             // { dg-error "" }
545     sink_3_267(cva);          // { dg-error "" }
546     sink_3_267(source());     // { dg-error "" }
547     sink_3_267(cv_source());  // { dg-error "" }
548     return 0;
551 two   sink_3_268(const          A&);
552 six   sink_3_268(const          A&&);
553 eight sink_3_268(const volatile A&&);
555 int test3_268()
557                    A a;
558     const          A ca = a; // { dg-error "deleted" }
559           volatile A va;
560     const volatile A cva = a; // { dg-error "deleted" }
561     sink_3_268(va);             // { dg-error "" }
562     sink_3_268(cva);            // { dg-error "" }
563     return 0;
566 two   sink_3_278(const          A&);
567 seven sink_3_278(volatile       A&&);
568 eight sink_3_278(const volatile A&&);
570 int test3_278()
572                    A a;
573     const          A ca = a; // { dg-error "deleted" }
574           volatile A va;
575     const volatile A cva = a; // { dg-error "deleted" }
576     sink_3_278(va);             // { dg-error "" }
577     sink_3_278(cva);            // { dg-error "" }
578     return 0;
581 three sink_3_345(volatile       A&);
582 four  sink_3_345(const volatile A&);
583 five  sink_3_345(               A&&);
585 int test3_345()
587                    A a;
588     const          A ca = a; // { dg-error "deleted" }
589           volatile A va;
590     const volatile A cva = a; // { dg-error "deleted" }
591     sink_3_345(c_source());   // { dg-error "" }
592     sink_3_345(v_source());   // { dg-error "" }
593     sink_3_345(cv_source());  // { dg-error "" }
594     return 0;
597 three sink_3_346(volatile       A&);
598 four  sink_3_346(const volatile A&);
599 six   sink_3_346(const          A&&);
601 int test3_346()
603                    A a;
604     const          A ca = a; // { dg-error "deleted" }
605           volatile A va;
606     const volatile A cva = a; // { dg-error "deleted" }
607     sink_3_346(v_source());   // { dg-error "" }
608     sink_3_346(cv_source());  // { dg-error "" }
609     return 0;
612 three sink_3_347(volatile       A&);
613 four  sink_3_347(const volatile A&);
614 seven sink_3_347(volatile       A&&);
616 int test3_347()
618                    A a;
619     const          A ca = a; // { dg-error "deleted" }
620           volatile A va;
621     const volatile A cva = a; // { dg-error "deleted" }
622     sink_3_347(c_source());   // { dg-error "" }
623     sink_3_347(cv_source());  // { dg-error "" }
624     return 0;
627 three sink_3_356(volatile       A&);
628 five  sink_3_356(               A&&);
629 six   sink_3_356(const          A&&);
631 int test3_356()
633                    A a;
634     const          A ca = a; // { dg-error "deleted" }
635           volatile A va;
636     const volatile A cva = a; // { dg-error "deleted" }
637     sink_3_356(ca);             // { dg-error "" }
638     sink_3_356(cva);          // { dg-error "" }
639     sink_3_356(v_source());   // { dg-error "" }
640     sink_3_356(cv_source());  // { dg-error "" }
641     return 0;
644 three sink_3_357(volatile       A&);
645 five  sink_3_357(               A&&);
646 seven sink_3_357(volatile       A&&);
648 int test3_357()
650                    A a;
651     const          A ca = a; // { dg-error "deleted" }
652           volatile A va;
653     const volatile A cva = a; // { dg-error "deleted" }
654     sink_3_357(ca);           // { dg-error "" }
655     sink_3_357(cva);          // { dg-error "" }
656     sink_3_357(c_source());   // { dg-error "" }
657     sink_3_357(cv_source());  // { dg-error "" }
658     return 0;
661 three sink_3_358(volatile       A&);
662 five  sink_3_358(               A&&);
663 eight sink_3_358(const volatile A&&);
665 int test3_358()
667                    A a;
668     const          A ca = a; // { dg-error "deleted" }
669           volatile A va;
670     const volatile A cva = a; // { dg-error "deleted" }
671     sink_3_358(ca);             // { dg-error "" }
672     sink_3_358(cva);            // { dg-error "" }
673     return 0;
676 three sink_3_367(volatile       A&);
677 six   sink_3_367(const          A&&);
678 seven sink_3_367(volatile       A&&);
680 int test3_367()
682                    A a;
683     const          A ca = a; // { dg-error "deleted" }
684           volatile A va;
685     const volatile A cva = a; // { dg-error "deleted" }
686     sink_3_367(ca);             // { dg-error "" }
687     sink_3_367(cva);          // { dg-error "" }
688     sink_3_367(source());     // { dg-error "" }
689     sink_3_367(cv_source());  // { dg-error "" }
690     return 0;
693 three sink_3_368(volatile       A&);
694 six   sink_3_368(const          A&&);
695 eight sink_3_368(const volatile A&&);
697 int test3_368()
699                    A a;
700     const          A ca = a; // { dg-error "deleted" }
701           volatile A va;
702     const volatile A cva = a; // { dg-error "deleted" }
703     sink_3_368(ca);             // { dg-error "" }
704     sink_3_368(cva);            // { dg-error "" }
705     return 0;
708 three sink_3_378(volatile       A&);
709 seven sink_3_378(volatile       A&&);
710 eight sink_3_378(const volatile A&&);
712 int test3_378()
714                    A a;
715     const          A ca = a; // { dg-error "deleted" }
716           volatile A va;
717     const volatile A cva = a; // { dg-error "deleted" }
718     sink_3_378(ca);             // { dg-error "" }
719     sink_3_378(cva);            // { dg-error "" }
720     return 0;
723 four  sink_3_456(const volatile A&);
724 five  sink_3_456(               A&&);
725 six   sink_3_456(const          A&&);
727 int test3_456()
729                    A a;
730     const          A ca = a; // { dg-error "deleted" }
731           volatile A va;
732     const volatile A cva = a; // { dg-error "deleted" }
733     sink_3_456(v_source());   // { dg-error "" }
734     sink_3_456(cv_source());  // { dg-error "" }
735     return 0;
738 four  sink_3_457(const volatile A&);
739 five  sink_3_457(               A&&);
740 seven sink_3_457(volatile       A&&);
742 int test3_457()
744                    A a;
745     const          A ca = a; // { dg-error "deleted" }
746           volatile A va;
747     const volatile A cva = a; // { dg-error "deleted" }
748     sink_3_457(c_source());   // { dg-error "" }
749     sink_3_457(cv_source());  // { dg-error "" }
750     return 0;
753 four  sink_3_467(const volatile A&);
754 six   sink_3_467(const          A&&);
755 seven sink_3_467(volatile       A&&);
757 int test3_467()
759                    A a;
760     const          A ca = a; // { dg-error "deleted" }
761           volatile A va;
762     const volatile A cva = a; // { dg-error "deleted" }
763     sink_3_467(source());     // { dg-error "" }
764     sink_3_467(cv_source());  // { dg-error "" }
765     return 0;
768 five  sink_3_567(               A&&);
769 six   sink_3_567(const          A&&);
770 seven sink_3_567(volatile       A&&);
772 int test3_567()
774                    A a;
775     const          A ca = a; // { dg-error "deleted" }
776           volatile A va;
777     const volatile A cva = a; // { dg-error "deleted" }
778     sink_3_567(a);              // { dg-error "" }
779     sink_3_567(ca);             // { dg-error "" }
780     sink_3_567(va);             // { dg-error "" }
781     sink_3_567(cva);          // { dg-error "" }
782     sink_3_567(cv_source());  // { dg-error "" }
783     return 0;
786 five  sink_3_568(               A&&);
787 six   sink_3_568(const          A&&);
788 eight sink_3_568(const volatile A&&);
790 int test3_568()
792                    A a;
793     const          A ca = a; // { dg-error "deleted" }
794           volatile A va;
795     const volatile A cva = a; // { dg-error "deleted" }
796     sink_3_568(a);              // { dg-error "" }
797     sink_3_568(ca);             // { dg-error "" }
798     sink_3_568(va);             // { dg-error "" }
799     sink_3_568(cva);            // { dg-error "" }
800     return 0;
803 five  sink_3_578(               A&&);
804 seven sink_3_578(volatile       A&&);
805 eight sink_3_578(const volatile A&&);
807 int test3_578()
809                    A a;
810     const          A ca = a; // { dg-error "deleted" }
811           volatile A va;
812     const volatile A cva = a; // { dg-error "deleted" }
813     sink_3_578(a);              // { dg-error "" }
814     sink_3_578(ca);             // { dg-error "" }
815     sink_3_578(va);             // { dg-error "" }
816     sink_3_578(cva);            // { dg-error "" }
817     return 0;
820 six   sink_3_678(const          A&&);
821 seven sink_3_678(volatile       A&&);
822 eight sink_3_678(const volatile A&&);
824 int test3_678()
826                    A a;
827     const          A ca = a; // { dg-error "deleted" }
828           volatile A va;
829     const volatile A cva = a; // { dg-error "deleted" }
830     sink_3_678(a);          // { dg-error "" }
831     sink_3_678(ca);         // { dg-error "" }
832     sink_3_678(va);         // { dg-error "" }
833     sink_3_678(cva);        // { dg-error "" }
834     sink_3_678(source());   // { dg-error "" }
835     return 0;
838 int main()
840     return test3_123() + test3_125() + test3_126() + test3_127() +
841            test3_135() + test3_136() + test3_137() + test3_156() +
842            test3_157() + test3_167() + test3_234() + test3_235() +
843            test3_236() + test3_237() + test3_238() + test3_256() +
844            test3_257() + test3_267() + test3_356() + test3_357() +
845            test3_367() + test3_467() + test3_567() + test3_678();