]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/g++.dg/cpp0x/rv4n.C
call.c (struct conversion_info): Rename 'from_type' to 'from'.
[thirdparty/gcc.git] / gcc / testsuite / g++.dg / cpp0x / rv4n.C
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-options "" }
7
8 template <bool> struct sa;
9 template <> struct sa<true> {};
10
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];};
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 // 4 at a time
32
33 one sink_4_1234( A&);
34 two sink_4_1234(const A&);
35 three sink_4_1234(volatile A&);
36 four sink_4_1234(const volatile A&);
37
38 int test4_1234()
39 {
40 A a;
41 const A ca = a; // { dg-error "deleted" }
42 volatile A va;
43 const volatile A cva = a; // { dg-error "deleted" }
44 sink_4_1234(v_source()); // { dg-error "" }
45 sink_4_1234(cv_source()); // { dg-error "" }
46 return 0;
47 }
48
49 one sink_4_1235( A&);
50 two sink_4_1235(const A&);
51 three sink_4_1235(volatile A&);
52 five sink_4_1235( A&&);
53
54 int test4_1235()
55 {
56 A a;
57 const A ca = a; // { dg-error "deleted" }
58 volatile A va;
59 const volatile A cva = a; // { dg-error "deleted" }
60 sink_4_1235(cva); // { dg-error "" }
61 sink_4_1235(v_source()); // { dg-error "" }
62 sink_4_1235(cv_source()); // { dg-error "" }
63 return 0;
64 }
65
66 one sink_4_1236( A&);
67 two sink_4_1236(const A&);
68 three sink_4_1236(volatile A&);
69 six sink_4_1236(const A&&);
70
71 int test4_1236()
72 {
73 A a;
74 const A ca = a; // { dg-error "deleted" }
75 volatile A va;
76 const volatile A cva = a; // { dg-error "deleted" }
77 sink_4_1236(cva); // { dg-error "" }
78 sink_4_1236(v_source()); // { dg-error "" }
79 sink_4_1236(cv_source()); // { dg-error "" }
80 return 0;
81 }
82
83 one sink_4_1237( A&);
84 two sink_4_1237(const A&);
85 three sink_4_1237(volatile A&);
86 seven sink_4_1237(volatile A&&);
87
88 int test4_1237()
89 {
90 A a;
91 const A ca = a; // { dg-error "deleted" }
92 volatile A va;
93 const volatile A cva = a; // { dg-error "deleted" }
94 sink_4_1237(cva); // { dg-error "" }
95 sink_4_1237(cv_source()); // { dg-error "" }
96 return 0;
97 }
98
99 one sink_4_1238( A&);
100 two sink_4_1238(const A&);
101 three sink_4_1238(volatile A&);
102 eight sink_4_1238(const volatile A&&); // { dg-message "" }
103
104 int test4_1238()
105 {
106 A a;
107 const A ca = a; // { dg-error "deleted" }
108 volatile A va;
109 const volatile A cva = a; // { dg-error "deleted" }
110 sink_4_1238(cva); // { dg-error "" }
111 return 0;
112 }
113
114 one sink_4_1245( A&);
115 two sink_4_1245(const A&);
116 four sink_4_1245(const volatile A&);
117 five sink_4_1245( A&&);
118
119 int test4_1245()
120 {
121 A a;
122 const A ca = a; // { dg-error "deleted" }
123 volatile A va;
124 const volatile A cva = a; // { dg-error "deleted" }
125 sink_4_1245(v_source()); // { dg-error "" }
126 sink_4_1245(cv_source()); // { dg-error "" }
127 return 0;
128 }
129
130 one sink_4_1246( A&);
131 two sink_4_1246(const A&);
132 four sink_4_1246(const volatile A&);
133 six sink_4_1246(const A&&);
134
135 int test4_1246()
136 {
137 A a;
138 const A ca = a; // { dg-error "deleted" }
139 volatile A va;
140 const volatile A cva = a; // { dg-error "deleted" }
141 sink_4_1246(v_source()); // { dg-error "" }
142 sink_4_1246(cv_source()); // { dg-error "" }
143 return 0;
144 }
145
146 one sink_4_1247( A&);
147 two sink_4_1247(const A&);
148 four sink_4_1247(const volatile A&);
149 seven sink_4_1247(volatile A&&);
150
151 int test4_1247()
152 {
153 A a;
154 const A ca = a; // { dg-error "deleted" }
155 volatile A va;
156 const volatile A cva = a; // { dg-error "deleted" }
157 sink_4_1247(cv_source()); // { dg-error "" }
158 return 0;
159 }
160
161 one sink_4_1256( A&);
162 two sink_4_1256(const A&);
163 five sink_4_1256( A&&);
164 six sink_4_1256(const A&&);
165
166 int test4_1256()
167 {
168 A a;
169 const A ca = a; // { dg-error "deleted" }
170 volatile A va;
171 const volatile A cva = a; // { dg-error "deleted" }
172 sink_4_1256(va); // { dg-error "" }
173 sink_4_1256(cva); // { dg-error "" }
174 sink_4_1256(v_source()); // { dg-error "" }
175 sink_4_1256(cv_source()); // { dg-error "" }
176 return 0;
177 }
178
179 one sink_4_1257( A&);
180 two sink_4_1257(const A&);
181 five sink_4_1257( A&&);
182 seven sink_4_1257(volatile A&&);
183
184 int test4_1257()
185 {
186 A a;
187 const A ca = a; // { dg-error "deleted" }
188 volatile A va;
189 const volatile A cva = a; // { dg-error "deleted" }
190 sink_4_1257(va); // { dg-error "" }
191 sink_4_1257(cva); // { dg-error "" }
192 sink_4_1257(cv_source()); // { dg-error "" }
193 return 0;
194 }
195
196 one sink_4_1258( A&);
197 two sink_4_1258(const A&);
198 five sink_4_1258( A&&);
199 eight sink_4_1258(const volatile A&&); // { dg-message "" }
200
201 int test4_1258()
202 {
203 A a;
204 const A ca = a; // { dg-error "deleted" }
205 volatile A va;
206 const volatile A cva = a; // { dg-error "deleted" }
207 sink_4_1258(va); // { dg-error "" }
208 sink_4_1258(cva); // { dg-error "" }
209 return 0;
210 }
211
212 one sink_4_1267( A&);
213 two sink_4_1267(const A&);
214 six sink_4_1267(const A&&);
215 seven sink_4_1267(volatile A&&);
216
217 int test4_1267()
218 {
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_4_1267(va); // { dg-error "" }
224 sink_4_1267(cva); // { dg-error "" }
225 sink_4_1267(source()); // { dg-error "" }
226 sink_4_1267(cv_source()); // { dg-error "" }
227 return 0;
228 }
229
230 one sink_4_1268( A&);
231 two sink_4_1268(const A&);
232 six sink_4_1268(const A&&);
233 eight sink_4_1268(const volatile A&&); // { dg-message "" }
234
235 int test4_1268()
236 {
237 A a;
238 const A ca = a; // { dg-error "deleted" }
239 volatile A va;
240 const volatile A cva = a; // { dg-error "deleted" }
241 sink_4_1268(va); // { dg-error "" }
242 sink_4_1268(cva); // { dg-error "" }
243 return 0;
244 }
245
246 one sink_4_1278( A&);
247 two sink_4_1278(const A&);
248 seven sink_4_1278(volatile A&&); // { dg-message "" }
249 eight sink_4_1278(const volatile A&&); // { dg-message "" }
250
251 int test4_1278()
252 {
253 A a;
254 const A ca = a; // { dg-error "deleted" }
255 volatile A va;
256 const volatile A cva = a; // { dg-error "deleted" }
257 sink_4_1278(va); // { dg-error "" }
258 sink_4_1278(cva); // { dg-error "" }
259 return 0;
260 }
261
262 one sink_4_1345( A&);
263 three sink_4_1345(volatile A&);
264 four sink_4_1345(const volatile A&);
265 five sink_4_1345( A&&);
266
267 int test4_1345()
268 {
269 A a;
270 const A ca = a; // { dg-error "deleted" }
271 volatile A va;
272 const volatile A cva = a; // { dg-error "deleted" }
273 sink_4_1345(c_source()); // { dg-error "" }
274 sink_4_1345(v_source()); // { dg-error "" }
275 sink_4_1345(cv_source()); // { dg-error "" }
276 return 0;
277 }
278
279 one sink_4_1346( A&);
280 three sink_4_1346(volatile A&);
281 four sink_4_1346(const volatile A&);
282 six sink_4_1346(const A&&);
283
284 int test4_1346()
285 {
286 A a;
287 const A ca = a; // { dg-error "deleted" }
288 volatile A va;
289 const volatile A cva = a; // { dg-error "deleted" }
290 sink_4_1346(v_source()); // { dg-error "" }
291 sink_4_1346(cv_source()); // { dg-error "" }
292 return 0;
293 }
294
295 one sink_4_1347( A&);
296 three sink_4_1347(volatile A&);
297 four sink_4_1347(const volatile A&);
298 seven sink_4_1347(volatile A&&);
299
300 int test4_1347()
301 {
302 A a;
303 const A ca = a; // { dg-error "deleted" }
304 volatile A va;
305 const volatile A cva = a; // { dg-error "deleted" }
306 sink_4_1347(c_source()); // { dg-error "" }
307 sink_4_1347(cv_source()); // { dg-error "" }
308 return 0;
309 }
310
311 one sink_4_1356( A&);
312 three sink_4_1356(volatile A&);
313 five sink_4_1356( A&&);
314 six sink_4_1356(const A&&);
315
316 int test4_1356()
317 {
318 A a;
319 const A ca = a; // { dg-error "deleted" }
320 volatile A va;
321 const volatile A cva = a; // { dg-error "deleted" }
322 sink_4_1356(ca); // { dg-error "" }
323 sink_4_1356(cva); // { dg-error "" }
324 sink_4_1356(v_source()); // { dg-error "" }
325 sink_4_1356(cv_source()); // { dg-error "" }
326 return 0;
327 }
328
329 one sink_4_1357( A&);
330 three sink_4_1357(volatile A&);
331 five sink_4_1357( A&&);
332 seven sink_4_1357(volatile A&&);
333
334 int test4_1357()
335 {
336 A a;
337 const A ca = a; // { dg-error "deleted" }
338 volatile A va;
339 const volatile A cva = a; // { dg-error "deleted" }
340 sink_4_1357(ca); // { dg-error "" }
341 sink_4_1357(cva); // { dg-error "" }
342 sink_4_1357(c_source()); // { dg-error "" }
343 sink_4_1357(cv_source()); // { dg-error "" }
344 return 0;
345 }
346
347 one sink_4_1358( A&);
348 three sink_4_1358(volatile A&);
349 five sink_4_1358( A&&);
350 eight sink_4_1358(const volatile A&&); // { dg-message "" }
351
352 int test4_1358()
353 {
354 A a;
355 const A ca = a; // { dg-error "deleted" }
356 volatile A va;
357 const volatile A cva = a; // { dg-error "deleted" }
358 sink_4_1358(ca); // { dg-error "" }
359 sink_4_1358(cva); // { dg-error "" }
360 return 0;
361 }
362
363 one sink_4_1367( A&);
364 three sink_4_1367(volatile A&);
365 six sink_4_1367(const A&&);
366 seven sink_4_1367(volatile A&&);
367
368 int test4_1367()
369 {
370 A a;
371 const A ca = a; // { dg-error "deleted" }
372 volatile A va;
373 const volatile A cva = a; // { dg-error "deleted" }
374 sink_4_1367(ca); // { dg-error "" }
375 sink_4_1367(cva); // { dg-error "" }
376 sink_4_1367(source()); // { dg-error "" }
377 sink_4_1367(cv_source()); // { dg-error "" }
378 return 0;
379 }
380
381 one sink_4_1368( A&);
382 three sink_4_1368(volatile A&);
383 six sink_4_1368(const A&&); // { dg-message "" }
384 eight sink_4_1368(const volatile A&&); // { dg-message "" }
385
386 int test4_1368()
387 {
388 A a;
389 const A ca = a; // { dg-error "deleted" }
390 volatile A va;
391 const volatile A cva = a; // { dg-error "deleted" }
392 sink_4_1368(ca); // { dg-error "" }
393 sink_4_1368(cva); // { dg-error "" }
394 return 0;
395 }
396
397 one sink_4_1378( A&);
398 three sink_4_1378(volatile A&);
399 seven sink_4_1378(volatile A&&);
400 eight sink_4_1378(const volatile A&&); // { dg-message "" }
401
402 int test4_1378()
403 {
404 A a;
405 const A ca = a; // { dg-error "deleted" }
406 volatile A va;
407 const volatile A cva = a; // { dg-error "deleted" }
408 sink_4_1378(ca); // { dg-error "" }
409 sink_4_1378(cva); // { dg-error "" }
410 return 0;
411 }
412
413 one sink_4_1456( A&);
414 four sink_4_1456(const volatile A&);
415 five sink_4_1456( A&&);
416 six sink_4_1456(const A&&);
417
418 int test4_1456()
419 {
420 A a;
421 const A ca = a; // { dg-error "deleted" }
422 volatile A va;
423 const volatile A cva = a; // { dg-error "deleted" }
424 sink_4_1456(v_source()); // { dg-error "" }
425 sink_4_1456(cv_source()); // { dg-error "" }
426 return 0;
427 }
428
429 one sink_4_1457( A&);
430 four sink_4_1457(const volatile A&);
431 five sink_4_1457( A&&);
432 seven sink_4_1457(volatile A&&);
433
434 int test4_1457()
435 {
436 A a;
437 const A ca = a; // { dg-error "deleted" }
438 volatile A va;
439 const volatile A cva = a; // { dg-error "deleted" }
440 sink_4_1457(c_source()); // { dg-error "" }
441 sink_4_1457(cv_source()); // { dg-error "" }
442 return 0;
443 }
444
445 one sink_4_1467( A&);
446 four sink_4_1467(const volatile A&);
447 six sink_4_1467(const A&&);
448 seven sink_4_1467(volatile A&&);
449
450 int test4_1467()
451 {
452 A a;
453 const A ca = a; // { dg-error "deleted" }
454 volatile A va;
455 const volatile A cva = a; // { dg-error "deleted" }
456 sink_4_1467(source()); // { dg-error "" }
457 sink_4_1467(cv_source()); // { dg-error "" }
458 return 0;
459 }
460
461 one sink_4_1567( A&);
462 five sink_4_1567( A&&);
463 six sink_4_1567(const A&&);
464 seven sink_4_1567(volatile A&&);
465
466 int test4_1567()
467 {
468 A a;
469 const A ca = a; // { dg-error "deleted" }
470 volatile A va;
471 const volatile A cva = a; // { dg-error "deleted" }
472 sink_4_1567(ca); // { dg-error "" }
473 sink_4_1567(va); // { dg-error "" }
474 sink_4_1567(cva); // { dg-error "" }
475 sink_4_1567(cv_source()); // { dg-error "" }
476 return 0;
477 }
478
479 one sink_4_1568( A&);
480 five sink_4_1568( A&&);
481 six sink_4_1568(const A&&); // { dg-message "" }
482 eight sink_4_1568(const volatile A&&); // { dg-message "" }
483
484 int test4_1568()
485 {
486 A a;
487 const A ca = a; // { dg-error "deleted" }
488 volatile A va;
489 const volatile A cva = a; // { dg-error "deleted" }
490 sink_4_1568(ca); // { dg-error "" }
491 sink_4_1568(va); // { dg-error "" }
492 sink_4_1568(cva); // { dg-error "" }
493 return 0;
494 }
495
496 one sink_4_1578( A&);
497 five sink_4_1578( A&&);
498 seven sink_4_1578(volatile A&&); // { dg-message "" }
499 eight sink_4_1578(const volatile A&&); // { dg-message "" }
500
501 int test4_1578()
502 {
503 A a;
504 const A ca = a; // { dg-error "deleted" }
505 volatile A va;
506 const volatile A cva = a; // { dg-error "deleted" }
507 sink_4_1578(ca); // { dg-error "" }
508 sink_4_1578(va); // { dg-error "" }
509 sink_4_1578(cva); // { dg-error "" }
510 return 0;
511 }
512
513 one sink_4_1678( A&);
514 six sink_4_1678(const A&&);
515 seven sink_4_1678(volatile A&&);
516 eight sink_4_1678(const volatile A&&);
517
518 int test4_1678()
519 {
520 A a;
521 const A ca = a; // { dg-error "deleted" }
522 volatile A va;
523 const volatile A cva = a; // { dg-error "deleted" }
524 sink_4_1678(ca); // { dg-error "" }
525 sink_4_1678(va); // { dg-error "" }
526 sink_4_1678(cva); // { dg-error "" }
527 sink_4_1678(source()); // { dg-error "" }
528 return 0;
529 }
530
531 two sink_4_2345(const A&);
532 three sink_4_2345(volatile A&);
533 four sink_4_2345(const volatile A&);
534 five sink_4_2345( A&&);
535
536 int test4_2345()
537 {
538 A a;
539 const A ca = a; // { dg-error "deleted" }
540 volatile A va;
541 const volatile A cva = a; // { dg-error "deleted" }
542 sink_4_2345(a); // { dg-error "" }
543 sink_4_2345(v_source()); // { dg-error "" }
544 sink_4_2345(cv_source()); // { dg-error "" }
545 return 0;
546 }
547
548 two sink_4_2346(const A&);
549 three sink_4_2346(volatile A&);
550 four sink_4_2346(const volatile A&);
551 six sink_4_2346(const A&&);
552
553 int test4_2346()
554 {
555 A a;
556 const A ca = a; // { dg-error "deleted" }
557 volatile A va;
558 const volatile A cva = a; // { dg-error "deleted" }
559 sink_4_2346(a); // { dg-error "" }
560 sink_4_2346(v_source()); // { dg-error "" }
561 sink_4_2346(cv_source()); // { dg-error "" }
562 return 0;
563 }
564
565 two sink_4_2347(const A&);
566 three sink_4_2347(volatile A&);
567 four sink_4_2347(const volatile A&);
568 seven sink_4_2347(volatile A&&);
569
570 int test4_2347()
571 {
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_4_2347(a); // { dg-error "" }
577 sink_4_2347(cv_source()); // { dg-error "" }
578 return 0;
579 }
580
581 two sink_4_2348(const A&);
582 three sink_4_2348(volatile A&);
583 four sink_4_2348(const volatile A&);
584 eight sink_4_2348(const volatile A&&);
585
586 int test4_2348()
587 {
588 A a;
589 const A ca = a; // { dg-error "deleted" }
590 volatile A va;
591 const volatile A cva = a; // { dg-error "deleted" }
592 sink_4_2348(a); // { dg-error "" }
593 return 0;
594 }
595
596 two sink_4_2356(const A&);
597 three sink_4_2356(volatile A&);
598 five sink_4_2356( A&&);
599 six sink_4_2356(const A&&);
600
601 int test4_2356()
602 {
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_4_2356(a); // { dg-error "" }
608 sink_4_2356(cva); // { dg-error "" }
609 sink_4_2356(v_source()); // { dg-error "" }
610 sink_4_2356(cv_source()); // { dg-error "" }
611 return 0;
612 }
613
614 two sink_4_2357(const A&);
615 three sink_4_2357(volatile A&);
616 five sink_4_2357( A&&);
617 seven sink_4_2357(volatile A&&);
618
619 int test4_2357()
620 {
621 A a;
622 const A ca = a; // { dg-error "deleted" }
623 volatile A va;
624 const volatile A cva = a; // { dg-error "deleted" }
625 sink_4_2357(a); // { dg-error "" }
626 sink_4_2357(cva); // { dg-error "" }
627 sink_4_2357(cv_source()); // { dg-error "" }
628 return 0;
629 }
630
631 two sink_4_2358(const A&);
632 three sink_4_2358(volatile A&);
633 five sink_4_2358( A&&);
634 eight sink_4_2358(const volatile A&&);
635
636 int test4_2358()
637 {
638 A a;
639 const A ca = a; // { dg-error "deleted" }
640 volatile A va;
641 const volatile A cva = a; // { dg-error "deleted" }
642 sink_4_2358(a); // { dg-error "" }
643 sink_4_2358(cva); // { dg-error "" }
644 return 0;
645 }
646
647 two sink_4_2367(const A&);
648 three sink_4_2367(volatile A&);
649 six sink_4_2367(const A&&);
650 seven sink_4_2367(volatile A&&);
651
652 int test4_2367()
653 {
654 A a;
655 const A ca = a; // { dg-error "deleted" }
656 volatile A va;
657 const volatile A cva = a; // { dg-error "deleted" }
658 sink_4_2367(a); // { dg-error "" }
659 sink_4_2367(cva); // { dg-error "" }
660 sink_4_2367(source()); // { dg-error "" }
661 sink_4_2367(cv_source()); // { dg-error "" }
662 return 0;
663 }
664
665 two sink_4_2368(const A&);
666 three sink_4_2368(volatile A&);
667 six sink_4_2368(const A&&);
668 eight sink_4_2368(const volatile A&&);
669
670 int test4_2368()
671 {
672 A a;
673 const A ca = a; // { dg-error "deleted" }
674 volatile A va;
675 const volatile A cva = a; // { dg-error "deleted" }
676 sink_4_2368(a); // { dg-error "" }
677 sink_4_2368(cva); // { dg-error "" }
678 return 0;
679 }
680
681 two sink_4_2378(const A&);
682 three sink_4_2378(volatile A&);
683 seven sink_4_2378(volatile A&&);
684 eight sink_4_2378(const volatile A&&);
685
686 int test4_2378()
687 {
688 A a;
689 const A ca = a; // { dg-error "deleted" }
690 volatile A va;
691 const volatile A cva = a; // { dg-error "deleted" }
692 sink_4_2378(a); // { dg-error "" }
693 sink_4_2378(cva); // { dg-error "" }
694 return 0;
695 }
696
697 two sink_4_2456(const A&);
698 four sink_4_2456(const volatile A&);
699 five sink_4_2456( A&&);
700 six sink_4_2456(const A&&);
701
702 int test4_2456()
703 {
704 A a;
705 const A ca = a; // { dg-error "deleted" }
706 volatile A va;
707 const volatile A cva = a; // { dg-error "deleted" }
708 sink_4_2456(v_source()); // { dg-error "" }
709 sink_4_2456(cv_source()); // { dg-error "" }
710 return 0;
711 }
712
713 two sink_4_2457(const A&);
714 four sink_4_2457(const volatile A&);
715 five sink_4_2457( A&&);
716 seven sink_4_2457(volatile A&&);
717
718 int test4_2457()
719 {
720 A a;
721 const A ca = a; // { dg-error "deleted" }
722 volatile A va;
723 const volatile A cva = a; // { dg-error "deleted" }
724 sink_4_2457(cv_source()); // { dg-error "" }
725 return 0;
726 }
727
728 two sink_4_2467(const A&);
729 four sink_4_2467(const volatile A&);
730 six sink_4_2467(const A&&);
731 seven sink_4_2467(volatile A&&);
732
733 int test4_2467()
734 {
735 A a;
736 const A ca = a; // { dg-error "deleted" }
737 volatile A va;
738 const volatile A cva = a; // { dg-error "deleted" }
739 sink_4_2467(source()); // { dg-error "" }
740 sink_4_2467(cv_source()); // { dg-error "" }
741 return 0;
742 }
743
744 two sink_4_2567(const A&);
745 five sink_4_2567( A&&);
746 six sink_4_2567(const A&&);
747 seven sink_4_2567(volatile A&&);
748
749 int test4_2567()
750 {
751 A a;
752 const A ca = a; // { dg-error "deleted" }
753 volatile A va;
754 const volatile A cva = a; // { dg-error "deleted" }
755 sink_4_2567(va); // { dg-error "" }
756 sink_4_2567(cva); // { dg-error "" }
757 sink_4_2567(cv_source()); // { dg-error "" }
758 return 0;
759 }
760
761 two sink_4_2568(const A&);
762 five sink_4_2568( A&&);
763 six sink_4_2568(const A&&);
764 eight sink_4_2568(const volatile A&&); // { dg-message "" }
765
766 int test4_2568()
767 {
768 A a;
769 const A ca = a; // { dg-error "deleted" }
770 volatile A va;
771 const volatile A cva = a; // { dg-error "deleted" }
772 sink_4_2568(va); // { dg-error "" }
773 sink_4_2568(cva); // { dg-error "" }
774 return 0;
775 }
776
777 two sink_4_2578(const A&);
778 five sink_4_2578( A&&);
779 seven sink_4_2578(volatile A&&); // { dg-message "" }
780 eight sink_4_2578(const volatile A&&); // { dg-message "" }
781
782 int test4_2578()
783 {
784 A a;
785 const A ca = a; // { dg-error "deleted" }
786 volatile A va;
787 const volatile A cva = a; // { dg-error "deleted" }
788 sink_4_2578(va); // { dg-error "" }
789 sink_4_2578(cva); // { dg-error "" }
790 return 0;
791 }
792
793 two sink_4_2678(const A&);
794 six sink_4_2678(const A&&);
795 seven sink_4_2678(volatile A&&);
796 eight sink_4_2678(const volatile A&&);
797
798 int test4_2678()
799 {
800 A a;
801 const A ca = a; // { dg-error "deleted" }
802 volatile A va;
803 const volatile A cva = a; // { dg-error "deleted" }
804 sink_4_2678(va); // { dg-error "" }
805 sink_4_2678(cva); // { dg-error "" }
806 sink_4_2678(source()); // { dg-error "" }
807 return 0;
808 }
809
810 three sink_4_3456(volatile A&);
811 four sink_4_3456(const volatile A&);
812 five sink_4_3456( A&&);
813 six sink_4_3456(const A&&);
814
815 int test4_3456()
816 {
817 A a;
818 const A ca = a; // { dg-error "deleted" }
819 volatile A va;
820 const volatile A cva = a; // { dg-error "deleted" }
821 sink_4_3456(v_source()); // { dg-error "" }
822 sink_4_3456(cv_source()); // { dg-error "" }
823 return 0;
824 }
825
826 three sink_4_3457(volatile A&);
827 four sink_4_3457(const volatile A&);
828 five sink_4_3457( A&&);
829 seven sink_4_3457(volatile A&&);
830
831 int test4_3457()
832 {
833 A a;
834 const A ca = a; // { dg-error "deleted" }
835 volatile A va;
836 const volatile A cva = a; // { dg-error "deleted" }
837 sink_4_3457(c_source()); // { dg-error "" }
838 sink_4_3457(cv_source()); // { dg-error "" }
839 return 0;
840 }
841
842 three sink_4_3467(volatile A&);
843 four sink_4_3467(const volatile A&);
844 six sink_4_3467(const A&&);
845 seven sink_4_3467(volatile A&&);
846
847 int test4_3467()
848 {
849 A a;
850 const A ca = a; // { dg-error "deleted" }
851 volatile A va;
852 const volatile A cva = a; // { dg-error "deleted" }
853 sink_4_3467(source()); // { dg-error "" }
854 sink_4_3467(cv_source()); // { dg-error "" }
855 return 0;
856 }
857
858 three sink_4_3567(volatile A&);
859 five sink_4_3567( A&&);
860 six sink_4_3567(const A&&);
861 seven sink_4_3567(volatile A&&);
862
863 int test4_3567()
864 {
865 A a;
866 const A ca = a; // { dg-error "deleted" }
867 volatile A va;
868 const volatile A cva = a; // { dg-error "deleted" }
869 sink_4_3567(ca); // { dg-error "" }
870 sink_4_3567(cva); // { dg-error "" }
871 sink_4_3567(cv_source()); // { dg-error "" }
872 return 0;
873 }
874
875 three sink_4_3568(volatile A&);
876 five sink_4_3568( A&&);
877 six sink_4_3568(const A&&); // { dg-message "" }
878 eight sink_4_3568(const volatile A&&); // { dg-message "" }
879
880 int test4_3568()
881 {
882 A a;
883 const A ca = a; // { dg-error "deleted" }
884 volatile A va;
885 const volatile A cva = a; // { dg-error "deleted" }
886 sink_4_3568(ca); // { dg-error "" }
887 sink_4_3568(cva); // { dg-error "" }
888 return 0;
889 }
890
891 three sink_4_3578(volatile A&);
892 five sink_4_3578( A&&);
893 seven sink_4_3578(volatile A&&);
894 eight sink_4_3578(const volatile A&&); // { dg-message "" }
895
896 int test4_3578()
897 {
898 A a;
899 const A ca = a; // { dg-error "deleted" }
900 volatile A va;
901 const volatile A cva = a; // { dg-error "deleted" }
902 sink_4_3578(ca); // { dg-error "" }
903 sink_4_3578(cva); // { dg-error "" }
904 return 0;
905 }
906
907 three sink_4_3678(volatile A&);
908 six sink_4_3678(const A&&);
909 seven sink_4_3678(volatile A&&);
910 eight sink_4_3678(const volatile A&&);
911
912 int test4_3678()
913 {
914 A a;
915 const A ca = a; // { dg-error "deleted" }
916 volatile A va;
917 const volatile A cva = a; // { dg-error "deleted" }
918 sink_4_3678(ca); // { dg-error "" }
919 sink_4_3678(cva); // { dg-error "" }
920 sink_4_3678(source()); // { dg-error "" }
921 return 0;
922 }
923
924 four sink_4_4567(const volatile A&);
925 five sink_4_4567( A&&);
926 six sink_4_4567(const A&&);
927 seven sink_4_4567(volatile A&&);
928
929 int test4_4567()
930 {
931 A a;
932 const A ca = a; // { dg-error "deleted" }
933 volatile A va;
934 const volatile A cva = a; // { dg-error "deleted" }
935 sink_4_4567(cv_source()); // { dg-error "" }
936 return 0;
937 }
938
939 four sink_4_4678(const volatile A&);
940 six sink_4_4678(const A&&);
941 seven sink_4_4678(volatile A&&);
942 eight sink_4_4678(const volatile A&&);
943
944 int test4_4678()
945 {
946 A a;
947 const A ca = a; // { dg-error "deleted" }
948 volatile A va;
949 const volatile A cva = a; // { dg-error "deleted" }
950 sink_4_4678(source()); // { dg-error "" }
951 return 0;
952 }
953
954 five sink_4_5678( A&&); // { dg-message "" }
955 six sink_4_5678(const A&&); // { dg-message "" }
956 seven sink_4_5678(volatile A&&); // { dg-message "" }
957 eight sink_4_5678(const volatile A&&); // { dg-message "" }
958
959 int test4_5678()
960 {
961 A a;
962 const A ca = a; // { dg-error "deleted" }
963 volatile A va;
964 const volatile A cva = a; // { dg-error "deleted" }
965 sink_4_5678(a); // { dg-error "" }
966 sink_4_5678(ca); // { dg-error "" }
967 sink_4_5678(va); // { dg-error "" }
968 sink_4_5678(cva); // { dg-error "" }
969 return 0;
970 }
971
972 int main()
973 {
974 return test4_1235() + test4_1236() + test4_1237() + test4_1256() + test4_1257() +
975 test4_1267() + test4_1356() + test4_1357() + test4_1467() + test4_1567() +
976 test4_1678() + test4_2345() + test4_2346() + test4_2347() + test4_2348() +
977 test4_2356() + test4_2357() + test4_2358() + test4_2367() + test4_2368() +
978 test4_2378() + test4_2467() + test4_2567() + test4_2678() + test4_3467() +
979 test4_3567() + test4_3678() + test4_4678();
980 }