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 } }
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];};
23 A(const volatile A&&);
28 volatile A v_source();
29 const volatile A cv_source();
33 one sink_4_1234( A&); // { dg-message "one sink_4_1234|no known conversion" }
34 two sink_4_1234(const A&); // { dg-message "note" }
35 three sink_4_1234(volatile A&); // { dg-message "note" }
36 four sink_4_1234(const volatile A&); // { dg-message "note" }
41 const A ca = a; // { dg-error "deleted" }
43 const volatile A cva = a; // { dg-error "deleted" }
44 sink_4_1234(v_source()); // { dg-error "no match" }
45 // { dg-message "candidate" "candidate note" { target *-*-* } 44 }
46 sink_4_1234(cv_source()); // { dg-error "no match" }
47 // { dg-message "candidate" "candidate note" { target *-*-* } 46 }
51 one sink_4_1235( A&); // { dg-message "one sink_4_1235|no known conversion" }
52 two sink_4_1235(const A&); // { dg-message "note" }
53 three sink_4_1235(volatile A&); // { dg-message "note" }
54 five sink_4_1235( A&&); // { dg-message "note" }
59 const A ca = a; // { dg-error "deleted" }
61 const volatile A cva = a; // { dg-error "deleted" }
62 sink_4_1235(cva); // { dg-error "no match" }
63 // { dg-message "candidate" "candidate note" { target *-*-* } 62 }
64 sink_4_1235(v_source()); // { dg-error "no match" }
65 // { dg-message "candidate" "candidate note" { target *-*-* } 64 }
66 sink_4_1235(cv_source()); // { dg-error "no match" }
67 // { dg-message "candidate" "candidate note" { target *-*-* } 66 }
71 one sink_4_1236( A&); // { dg-message "one sink_4_1236|no known conversion" }
72 two sink_4_1236(const A&); // { dg-message "note" }
73 three sink_4_1236(volatile A&); // { dg-message "note" }
74 six sink_4_1236(const A&&); // { dg-message "note" }
79 const A ca = a; // { dg-error "deleted" }
81 const volatile A cva = a; // { dg-error "deleted" }
82 sink_4_1236(cva); // { dg-error "no match" }
83 // { dg-message "candidate" "candidate note" { target *-*-* } 82 }
84 sink_4_1236(v_source()); // { dg-error "no match" }
85 // { dg-message "candidate" "candidate note" { target *-*-* } 84 }
86 sink_4_1236(cv_source()); // { dg-error "no match" }
87 // { dg-message "candidate" "candidate note" { target *-*-* } 86 }
91 one sink_4_1237( A&); // { dg-message "one sink_4_1237|no known conversion" }
92 two sink_4_1237(const A&); // { dg-message "note" }
93 three sink_4_1237(volatile A&); // { dg-message "note" }
94 seven sink_4_1237(volatile A&&); // { dg-message "note" }
99 const A ca = a; // { dg-error "deleted" }
101 const volatile A cva = a; // { dg-error "deleted" }
102 sink_4_1237(cva); // { dg-error "no match" }
103 // { dg-message "candidate" "candidate note" { target *-*-* } 102 }
104 sink_4_1237(cv_source()); // { dg-error "no match" }
105 // { dg-message "candidate" "candidate note" { target *-*-* } 104 }
109 one sink_4_1238( A&);
110 two sink_4_1238(const A&);
111 three sink_4_1238(volatile A&);
112 eight sink_4_1238(const volatile A&&); // { dg-message "" }
117 const A ca = a; // { dg-error "deleted" }
119 const volatile A cva = a; // { dg-error "deleted" }
120 sink_4_1238(cva); // { dg-error "lvalue" }
124 one sink_4_1245( A&); // { dg-message "one sink_4_1245|no known conversion" }
125 two sink_4_1245(const A&); // { dg-message "note" }
126 four sink_4_1245(const volatile A&); // { dg-message "note" }
127 five sink_4_1245( A&&); // { dg-message "note" }
132 const A ca = a; // { dg-error "deleted" }
134 const volatile A cva = a; // { dg-error "deleted" }
135 sink_4_1245(v_source()); // { dg-error "no match" }
136 // { dg-message "candidate" "candidate note" { target *-*-* } 135 }
137 sink_4_1245(cv_source()); // { dg-error "no match" }
138 // { dg-message "candidate" "candidate note" { target *-*-* } 137 }
142 one sink_4_1246( A&); // { dg-message "one sink_4_1246|no known conversion" }
143 two sink_4_1246(const A&); // { dg-message "note" }
144 four sink_4_1246(const volatile A&); // { dg-message "note" }
145 six sink_4_1246(const A&&); // { dg-message "note" }
150 const A ca = a; // { dg-error "deleted" }
152 const volatile A cva = a; // { dg-error "deleted" }
153 sink_4_1246(v_source()); // { dg-error "no match" }
154 // { dg-message "candidate" "candidate note" { target *-*-* } 153 }
155 sink_4_1246(cv_source()); // { dg-error "no match" }
156 // { dg-message "candidate" "candidate note" { target *-*-* } 155 }
160 one sink_4_1247( A&); // { dg-message "one sink_4_1247|no known conversion" }
161 two sink_4_1247(const A&); // { dg-message "note" }
162 four sink_4_1247(const volatile A&); // { dg-message "note" }
163 seven sink_4_1247(volatile A&&); // { dg-message "note" }
168 const A ca = a; // { dg-error "deleted" }
170 const volatile A cva = a; // { dg-error "deleted" }
171 sink_4_1247(cv_source()); // { dg-error "no match" }
172 // { dg-message "candidate" "candidate note" { target *-*-* } 171 }
176 one sink_4_1256( A&); // { dg-message "one sink_4_1256|no known conversion" }
177 two sink_4_1256(const A&); // { dg-message "note" }
178 five sink_4_1256( A&&); // { dg-message "note" }
179 six sink_4_1256(const A&&); // { dg-message "note" }
184 const A ca = a; // { dg-error "deleted" }
186 const volatile A cva = a; // { dg-error "deleted" }
187 sink_4_1256(va); // { dg-error "no match" }
188 // { dg-message "candidate" "candidate note" { target *-*-* } 187 }
189 sink_4_1256(cva); // { dg-error "no match" }
190 // { dg-message "candidate" "candidate note" { target *-*-* } 189 }
191 sink_4_1256(v_source()); // { dg-error "no match" }
192 // { dg-message "candidate" "candidate note" { target *-*-* } 191 }
193 sink_4_1256(cv_source()); // { dg-error "no match" }
194 // { dg-message "candidate" "candidate note" { target *-*-* } 193 }
198 one sink_4_1257( A&); // { dg-message "one sink_4_1257|no known conversion" }
199 two sink_4_1257(const A&); // { dg-message "note" }
200 five sink_4_1257( A&&); // { dg-message "note" }
201 seven sink_4_1257(volatile A&&); // { dg-message "" }
206 const A ca = a; // { dg-error "deleted" }
208 const volatile A cva = a; // { dg-error "deleted" }
209 sink_4_1257(va); // { dg-error "lvalue" }
210 sink_4_1257(cva); // { dg-error "no match" }
211 // { dg-message "candidate" "candidate note" { target *-*-* } 210 }
212 sink_4_1257(cv_source()); // { dg-error "no match" }
213 // { dg-message "candidate" "candidate note" { target *-*-* } 212 }
217 one sink_4_1258( A&);
218 two sink_4_1258(const A&);
219 five sink_4_1258( A&&);
220 eight sink_4_1258(const volatile A&&); // { dg-message "" }
225 const A ca = a; // { dg-error "deleted" }
227 const volatile A cva = a; // { dg-error "deleted" }
228 sink_4_1258(va); // { dg-error "lvalue" }
229 sink_4_1258(cva); // { dg-error "lvalue" }
233 one sink_4_1267( A&); // { dg-message "one sink_4_1267|no known conversion" }
234 two sink_4_1267(const A&); // { dg-message "note" }
235 six sink_4_1267(const A&&); // { dg-message "note" }
236 seven sink_4_1267(volatile A&&); // { dg-message "" }
241 const A ca = a; // { dg-error "deleted" }
243 const volatile A cva = a; // { dg-error "deleted" }
244 sink_4_1267(va); // { dg-error "lvalue" }
245 sink_4_1267(cva); // { dg-error "no match" }
246 // { dg-message "candidate" "candidate note" { target *-*-* } 245 }
247 sink_4_1267(source()); // { dg-error "ambiguous" }
248 // { dg-message "candidate" "candidate note" { target *-*-* } 247 }
249 sink_4_1267(cv_source()); // { dg-error "no match" }
250 // { dg-message "candidate" "candidate note" { target *-*-* } 249 }
254 one sink_4_1268( A&);
255 two sink_4_1268(const A&);
256 six sink_4_1268(const A&&);
257 eight sink_4_1268(const volatile A&&); // { dg-message "" }
262 const A ca = a; // { dg-error "deleted" }
264 const volatile A cva = a; // { dg-error "deleted" }
265 sink_4_1268(va); // { dg-error "lvalue" }
266 sink_4_1268(cva); // { dg-error "lvalue" }
270 one sink_4_1278( A&);
271 two sink_4_1278(const A&);
272 seven sink_4_1278(volatile A&&); // { dg-message "" }
273 eight sink_4_1278(const volatile A&&); // { dg-message "" }
278 const A ca = a; // { dg-error "deleted" }
280 const volatile A cva = a; // { dg-error "deleted" }
281 sink_4_1278(va); // { dg-error "lvalue" }
282 sink_4_1278(cva); // { dg-error "lvalue" }
286 one sink_4_1345( A&); // { dg-message "one sink_4_1345|no known conversion" }
287 three sink_4_1345(volatile A&); // { dg-message "note" }
288 four sink_4_1345(const volatile A&); // { dg-message "note" }
289 five sink_4_1345( A&&); // { dg-message "note" }
294 const A ca = a; // { dg-error "deleted" }
296 const volatile A cva = a; // { dg-error "deleted" }
297 sink_4_1345(c_source()); // { dg-error "no match" }
298 // { dg-message "candidate" "candidate note" { target *-*-* } 297 }
299 sink_4_1345(v_source()); // { dg-error "no match" }
300 // { dg-message "candidate" "candidate note" { target *-*-* } 299 }
301 sink_4_1345(cv_source()); // { dg-error "no match" }
302 // { dg-message "candidate" "candidate note" { target *-*-* } 301 }
306 one sink_4_1346( A&); // { dg-message "one sink_4_1346|no known conversion" }
307 three sink_4_1346(volatile A&); // { dg-message "note" }
308 four sink_4_1346(const volatile A&); // { dg-message "note" }
309 six sink_4_1346(const A&&); // { dg-message "note" }
314 const A ca = a; // { dg-error "deleted" }
316 const volatile A cva = a; // { dg-error "deleted" }
317 sink_4_1346(v_source()); // { dg-error "no match" }
318 // { dg-message "candidate" "candidate note" { target *-*-* } 317 }
319 sink_4_1346(cv_source()); // { dg-error "no match" }
320 // { dg-message "candidate" "candidate note" { target *-*-* } 319 }
324 one sink_4_1347( A&); // { dg-message "one sink_4_1347|no known conversion" }
325 three sink_4_1347(volatile A&); // { dg-message "note" }
326 four sink_4_1347(const volatile A&); // { dg-message "note" }
327 seven sink_4_1347(volatile A&&); // { dg-message "note" }
332 const A ca = a; // { dg-error "deleted" }
334 const volatile A cva = a; // { dg-error "deleted" }
335 sink_4_1347(c_source()); // { dg-error "no match" }
336 // { dg-message "candidate" "candidate note" { target *-*-* } 335 }
337 sink_4_1347(cv_source()); // { dg-error "no match" }
338 // { dg-message "candidate" "candidate note" { target *-*-* } 337 }
342 one sink_4_1356( A&); // { dg-message "one sink_4_1356|no known conversion" }
343 three sink_4_1356(volatile A&); // { dg-message "note" }
344 five sink_4_1356( A&&); // { dg-message "note" }
345 six sink_4_1356(const A&&); // { dg-message "" }
350 const A ca = a; // { dg-error "deleted" }
352 const volatile A cva = a; // { dg-error "deleted" }
353 sink_4_1356(ca); // { dg-error "lvalue" }
354 sink_4_1356(cva); // { dg-error "no match" }
355 // { dg-message "candidate" "candidate note" { target *-*-* } 354 }
356 sink_4_1356(v_source()); // { dg-error "no match" }
357 // { dg-message "candidate" "candidate note" { target *-*-* } 356 }
358 sink_4_1356(cv_source()); // { dg-error "no match" }
359 // { dg-message "candidate" "candidate note" { target *-*-* } 358 }
363 one sink_4_1357( A&); // { dg-message "one sink_4_1357|no known conversion" }
364 three sink_4_1357(volatile A&); // { dg-message "note" }
365 five sink_4_1357( A&&); // { dg-message "note" }
366 seven sink_4_1357(volatile A&&); // { dg-message "note" }
371 const A ca = a; // { dg-error "deleted" }
373 const volatile A cva = a; // { dg-error "deleted" }
374 sink_4_1357(ca); // { dg-error "no match" }
375 // { dg-message "candidate" "candidate note" { target *-*-* } 374 }
376 sink_4_1357(cva); // { dg-error "no match" }
377 // { dg-message "candidate" "candidate note" { target *-*-* } 376 }
378 sink_4_1357(c_source()); // { dg-error "no match" }
379 // { dg-message "candidate" "candidate note" { target *-*-* } 378 }
380 sink_4_1357(cv_source()); // { dg-error "no match" }
381 // { dg-message "candidate" "candidate note" { target *-*-* } 380 }
385 one sink_4_1358( A&);
386 three sink_4_1358(volatile A&);
387 five sink_4_1358( A&&);
388 eight sink_4_1358(const volatile A&&); // { dg-message "" }
393 const A ca = a; // { dg-error "deleted" }
395 const volatile A cva = a; // { dg-error "deleted" }
396 sink_4_1358(ca); // { dg-error "lvalue" }
397 sink_4_1358(cva); // { dg-error "lvalue" }
401 one sink_4_1367( A&); // { dg-message "one sink_4_1367|no known conversion" }
402 three sink_4_1367(volatile A&); // { dg-message "note" }
403 six sink_4_1367(const A&&); // { dg-message "" }
404 seven sink_4_1367(volatile A&&); // { dg-message "note" }
409 const A ca = a; // { dg-error "deleted" }
411 const volatile A cva = a; // { dg-error "deleted" }
412 sink_4_1367(ca); // { dg-error "lvalue" }
413 sink_4_1367(cva); // { dg-error "no match" }
414 // { dg-message "candidate" "candidate note" { target *-*-* } 413 }
415 sink_4_1367(source()); // { dg-error "ambiguous" }
416 // { dg-message "candidate" "candidate note" { target *-*-* } 415 }
417 sink_4_1367(cv_source()); // { dg-error "no match" }
418 // { dg-message "candidate" "candidate note" { target *-*-* } 417 }
422 one sink_4_1368( A&);
423 three sink_4_1368(volatile A&);
424 six sink_4_1368(const A&&); // { dg-message "" }
425 eight sink_4_1368(const volatile A&&); // { dg-message "" }
430 const A ca = a; // { dg-error "deleted" }
432 const volatile A cva = a; // { dg-error "deleted" }
433 sink_4_1368(ca); // { dg-error "lvalue" }
434 sink_4_1368(cva); // { dg-error "lvalue" }
438 one sink_4_1378( A&);
439 three sink_4_1378(volatile A&);
440 seven sink_4_1378(volatile A&&);
441 eight sink_4_1378(const volatile A&&); // { dg-message "" }
446 const A ca = a; // { dg-error "deleted" }
448 const volatile A cva = a; // { dg-error "deleted" }
449 sink_4_1378(ca); // { dg-error "lvalue" }
450 sink_4_1378(cva); // { dg-error "lvalue" }
454 one sink_4_1456( A&); // { dg-message "one sink_4_1456|no known conversion" }
455 four sink_4_1456(const volatile A&); // { dg-message "note" }
456 five sink_4_1456( A&&); // { dg-message "note" }
457 six sink_4_1456(const A&&); // { dg-message "note" }
462 const A ca = a; // { dg-error "deleted" }
464 const volatile A cva = a; // { dg-error "deleted" }
465 sink_4_1456(v_source()); // { dg-error "no match" }
466 // { dg-message "candidate" "candidate note" { target *-*-* } 465 }
467 sink_4_1456(cv_source()); // { dg-error "no match" }
468 // { dg-message "candidate" "candidate note" { target *-*-* } 467 }
472 one sink_4_1457( A&); // { dg-message "one sink_4_1457|no known conversion" }
473 four sink_4_1457(const volatile A&); // { dg-message "note" }
474 five sink_4_1457( A&&); // { dg-message "note" }
475 seven sink_4_1457(volatile A&&); // { dg-message "note" }
480 const A ca = a; // { dg-error "deleted" }
482 const volatile A cva = a; // { dg-error "deleted" }
483 sink_4_1457(c_source()); // { dg-error "no match" }
484 // { dg-message "candidate" "candidate note" { target *-*-* } 483 }
485 sink_4_1457(cv_source()); // { dg-error "no match" }
486 // { dg-message "candidate" "candidate note" { target *-*-* } 485 }
490 one sink_4_1467( A&); // { dg-message "one sink_4_1467|no known conversion" }
491 four sink_4_1467(const volatile A&); // { dg-message "note" }
492 six sink_4_1467(const A&&); // { dg-message "note" }
493 seven sink_4_1467(volatile A&&); // { dg-message "note" }
498 const A ca = a; // { dg-error "deleted" }
500 const volatile A cva = a; // { dg-error "deleted" }
501 sink_4_1467(source()); // { dg-error "ambiguous" }
502 // { dg-message "candidate" "candidate note" { target *-*-* } 501 }
503 sink_4_1467(cv_source()); // { dg-error "no match" }
504 // { dg-message "candidate" "candidate note" { target *-*-* } 503 }
508 one sink_4_1567( A&); // { dg-message "one sink_4_1567|no known conversion" }
509 five sink_4_1567( A&&); // { dg-message "note" }
510 six sink_4_1567(const A&&); // { dg-message "" }
511 seven sink_4_1567(volatile A&&); // { dg-message "" }
516 const A ca = a; // { dg-error "deleted" }
518 const volatile A cva = a; // { dg-error "deleted" }
519 sink_4_1567(ca); // { dg-error "lvalue" }
520 sink_4_1567(va); // { dg-error "lvalue" }
521 sink_4_1567(cva); // { dg-error "no match" }
522 // { dg-message "candidate" "candidate note" { target *-*-* } 521 }
523 sink_4_1567(cv_source()); // { dg-error "no match" }
524 // { dg-message "candidate" "candidate note" { target *-*-* } 523 }
528 one sink_4_1568( A&);
529 five sink_4_1568( A&&);
530 six sink_4_1568(const A&&); // { dg-message "" }
531 eight sink_4_1568(const volatile A&&); // { dg-message "" }
536 const A ca = a; // { dg-error "deleted" }
538 const volatile A cva = a; // { dg-error "deleted" }
539 sink_4_1568(ca); // { dg-error "lvalue" }
540 sink_4_1568(va); // { dg-error "lvalue" }
541 sink_4_1568(cva); // { dg-error "lvalue" }
545 one sink_4_1578( A&);
546 five sink_4_1578( A&&);
547 seven sink_4_1578(volatile A&&); // { dg-message "" }
548 eight sink_4_1578(const volatile A&&); // { dg-message "" }
553 const A ca = a; // { dg-error "deleted" }
555 const volatile A cva = a; // { dg-error "deleted" }
556 sink_4_1578(ca); // { dg-error "lvalue" }
557 sink_4_1578(va); // { dg-error "lvalue" }
558 sink_4_1578(cva); // { dg-error "lvalue" }
562 one sink_4_1678( A&);
563 six sink_4_1678(const A&&); // { dg-message "" }
564 seven sink_4_1678(volatile A&&); // { dg-message "" }
565 eight sink_4_1678(const volatile A&&); // { dg-message "" }
570 const A ca = a; // { dg-error "deleted" }
572 const volatile A cva = a; // { dg-error "deleted" }
573 sink_4_1678(ca); // { dg-error "lvalue" }
574 sink_4_1678(va); // { dg-error "lvalue" }
575 sink_4_1678(cva); // { dg-error "lvalue" }
576 sink_4_1678(source()); // { dg-error "ambiguous" }
577 // { dg-message "candidate" "candidate note" { target *-*-* } 576 }
581 two sink_4_2345(const A&); // { dg-message "two sink_4_2345|no known conversion" }
582 three sink_4_2345(volatile A&); // { dg-message "note" }
583 four sink_4_2345(const volatile A&); // { dg-message "note" }
584 five sink_4_2345( A&&); // { dg-message "note" }
589 const A ca = a; // { dg-error "deleted" }
591 const volatile A cva = a; // { dg-error "deleted" }
592 sink_4_2345(a); // { dg-error "ambiguous" }
593 // { dg-message "candidate" "candidate note" { target *-*-* } 592 }
594 sink_4_2345(v_source()); // { dg-error "no match" }
595 // { dg-message "candidate" "candidate note" { target *-*-* } 594 }
596 sink_4_2345(cv_source()); // { dg-error "no match" }
597 // { dg-message "candidate" "candidate note" { target *-*-* } 596 }
601 two sink_4_2346(const A&); // { dg-message "two sink_4_2346|no known conversion" }
602 three sink_4_2346(volatile A&); // { dg-message "note" }
603 four sink_4_2346(const volatile A&); // { dg-message "note" }
604 six sink_4_2346(const A&&); // { dg-message "note" }
609 const A ca = a; // { dg-error "deleted" }
611 const volatile A cva = a; // { dg-error "deleted" }
612 sink_4_2346(a); // { dg-error "ambiguous" }
613 // { dg-message "candidate" "candidate note" { target *-*-* } 612 }
614 sink_4_2346(v_source()); // { dg-error "no match" }
615 // { dg-message "candidate" "candidate note" { target *-*-* } 614 }
616 sink_4_2346(cv_source()); // { dg-error "no match" }
617 // { dg-message "candidate" "candidate note" { target *-*-* } 616 }
621 two sink_4_2347(const A&); // { dg-message "two sink_4_2347|no known conversion" }
622 three sink_4_2347(volatile A&); // { dg-message "note" }
623 four sink_4_2347(const volatile A&); // { dg-message "note" }
624 seven sink_4_2347(volatile A&&); // { dg-message "note" }
629 const A ca = a; // { dg-error "deleted" }
631 const volatile A cva = a; // { dg-error "deleted" }
632 sink_4_2347(a); // { dg-error "ambiguous" }
633 // { dg-message "candidate" "candidate note" { target *-*-* } 632 }
634 sink_4_2347(cv_source()); // { dg-error "no match" }
635 // { dg-message "candidate" "candidate note" { target *-*-* } 634 }
639 two sink_4_2348(const A&); // { dg-message "note" }
640 three sink_4_2348(volatile A&); // { dg-message "note" }
641 four sink_4_2348(const volatile A&); // { dg-message "note" }
642 eight sink_4_2348(const volatile A&&); // { dg-message "note" }
647 const A ca = a; // { dg-error "deleted" }
649 const volatile A cva = a; // { dg-error "deleted" }
650 sink_4_2348(a); // { dg-error "ambiguous" }
651 // { dg-message "candidate" "candidate note" { target *-*-* } 650 }
655 two sink_4_2356(const A&); // { dg-message "two sink_4_2356|no known conversion" }
656 three sink_4_2356(volatile A&); // { dg-message "note" }
657 five sink_4_2356( A&&); // { dg-message "note" }
658 six sink_4_2356(const A&&); // { dg-message "note" }
663 const A ca = a; // { dg-error "deleted" }
665 const volatile A cva = a; // { dg-error "deleted" }
666 sink_4_2356(a); // { dg-error "ambiguous" }
667 // { dg-message "candidate" "candidate note" { target *-*-* } 666 }
668 sink_4_2356(cva); // { dg-error "no match" }
669 // { dg-message "candidate" "candidate note" { target *-*-* } 668 }
670 sink_4_2356(v_source()); // { dg-error "no match" }
671 // { dg-message "candidate" "candidate note" { target *-*-* } 670 }
672 sink_4_2356(cv_source()); // { dg-error "no match" }
673 // { dg-message "candidate" "candidate note" { target *-*-* } 672 }
677 two sink_4_2357(const A&); // { dg-message "two sink_4_2357|no known conversion" }
678 three sink_4_2357(volatile A&); // { dg-message "note" }
679 five sink_4_2357( A&&); // { dg-message "note" }
680 seven sink_4_2357(volatile A&&); // { dg-message "note" }
685 const A ca = a; // { dg-error "deleted" }
687 const volatile A cva = a; // { dg-error "deleted" }
688 sink_4_2357(a); // { dg-error "ambiguous" }
689 // { dg-message "candidate" "candidate note" { target *-*-* } 688 }
690 sink_4_2357(cva); // { dg-error "no match" }
691 // { dg-message "candidate" "candidate note" { target *-*-* } 690 }
692 sink_4_2357(cv_source()); // { dg-error "no match" }
693 // { dg-message "candidate" "candidate note" { target *-*-* } 692 }
697 two sink_4_2358(const A&); // { dg-message "note" }
698 three sink_4_2358(volatile A&); // { dg-message "note" }
699 five sink_4_2358( A&&); // { dg-message "note" }
700 eight sink_4_2358(const volatile A&&); // { dg-message "" }
705 const A ca = a; // { dg-error "deleted" }
707 const volatile A cva = a; // { dg-error "deleted" }
708 sink_4_2358(a); // { dg-error "ambiguous" }
709 // { dg-message "candidate" "candidate note" { target *-*-* } 708 }
710 sink_4_2358(cva); // { dg-error "lvalue" }
714 two sink_4_2367(const A&); // { dg-message "two sink_4_2367|no known conversion" }
715 three sink_4_2367(volatile A&); // { dg-message "note" }
716 six sink_4_2367(const A&&); // { dg-message "note" }
717 seven sink_4_2367(volatile A&&); // { dg-message "note" }
722 const A ca = a; // { dg-error "deleted" }
724 const volatile A cva = a; // { dg-error "deleted" }
725 sink_4_2367(a); // { dg-error "ambiguous" }
726 // { dg-message "candidate" "candidate note" { target *-*-* } 725 }
727 sink_4_2367(cva); // { dg-error "no match" }
728 // { dg-message "candidate" "candidate note" { target *-*-* } 727 }
729 sink_4_2367(source()); // { dg-error "ambiguous" }
730 // { dg-message "candidate" "candidate note" { target *-*-* } 729 }
731 sink_4_2367(cv_source()); // { dg-error "no match" }
732 // { dg-message "candidate" "candidate note" { target *-*-* } 731 }
736 two sink_4_2368(const A&); // { dg-message "note" }
737 three sink_4_2368(volatile A&); // { dg-message "note" }
738 six sink_4_2368(const A&&); // { dg-message "note" }
739 eight sink_4_2368(const volatile A&&); // { dg-message "" }
744 const A ca = a; // { dg-error "deleted" }
746 const volatile A cva = a; // { dg-error "deleted" }
747 sink_4_2368(a); // { dg-error "ambiguous" }
748 // { dg-message "candidate" "candidate note" { target *-*-* } 747 }
749 sink_4_2368(cva); // { dg-error "lvalue" }
753 two sink_4_2378(const A&); // { dg-message "note" }
754 three sink_4_2378(volatile A&); // { dg-message "note" }
755 seven sink_4_2378(volatile A&&); // { dg-message "note" }
756 eight sink_4_2378(const volatile A&&); // { dg-message "" }
761 const A ca = a; // { dg-error "deleted" }
763 const volatile A cva = a; // { dg-error "deleted" }
764 sink_4_2378(a); // { dg-error "ambiguous" }
765 // { dg-message "candidate" "candidate note" { target *-*-* } 764 }
766 sink_4_2378(cva); // { dg-error "lvalue" }
770 two sink_4_2456(const A&); // { dg-message "two sink_4_2456|no known conversion" }
771 four sink_4_2456(const volatile A&); // { dg-message "note" }
772 five sink_4_2456( A&&); // { dg-message "note" }
773 six sink_4_2456(const A&&); // { dg-message "note" }
778 const A ca = a; // { dg-error "deleted" }
780 const volatile A cva = a; // { dg-error "deleted" }
781 sink_4_2456(v_source()); // { dg-error "no match" }
782 // { dg-message "candidate" "candidate note" { target *-*-* } 781 }
783 sink_4_2456(cv_source()); // { dg-error "no match" }
784 // { dg-message "candidate" "candidate note" { target *-*-* } 783 }
788 two sink_4_2457(const A&); // { dg-message "two sink_4_2457|no known conversion" }
789 four sink_4_2457(const volatile A&); // { dg-message "note" }
790 five sink_4_2457( A&&); // { dg-message "note" }
791 seven sink_4_2457(volatile A&&); // { dg-message "note" }
796 const A ca = a; // { dg-error "deleted" }
798 const volatile A cva = a; // { dg-error "deleted" }
799 sink_4_2457(cv_source()); // { dg-error "no match" }
800 // { dg-message "candidate" "candidate note" { target *-*-* } 799 }
804 two sink_4_2467(const A&); // { dg-message "two sink_4_2467|no known conversion" }
805 four sink_4_2467(const volatile A&); // { dg-message "note" }
806 six sink_4_2467(const A&&); // { dg-message "note" }
807 seven sink_4_2467(volatile A&&); // { dg-message "note" }
812 const A ca = a; // { dg-error "deleted" }
814 const volatile A cva = a; // { dg-error "deleted" }
815 sink_4_2467(source()); // { dg-error "ambiguous" }
816 // { dg-message "candidate" "candidate note" { target *-*-* } 815 }
817 sink_4_2467(cv_source()); // { dg-error "no match" }
818 // { dg-message "candidate" "candidate note" { target *-*-* } 817 }
822 two sink_4_2567(const A&); // { dg-message "two sink_4_2567|no known conversion" }
823 five sink_4_2567( A&&); // { dg-message "note" }
824 six sink_4_2567(const A&&); // { dg-message "note" }
825 seven sink_4_2567(volatile A&&); // { dg-message "" }
830 const A ca = a; // { dg-error "deleted" }
832 const volatile A cva = a; // { dg-error "deleted" }
833 sink_4_2567(va); // { dg-error "lvalue" }
834 sink_4_2567(cva); // { dg-error "no match" }
835 // { dg-message "candidate" "candidate note" { target *-*-* } 834 }
836 sink_4_2567(cv_source()); // { dg-error "no match" }
837 // { dg-message "candidate" "candidate note" { target *-*-* } 836 }
841 two sink_4_2568(const A&);
842 five sink_4_2568( A&&);
843 six sink_4_2568(const A&&);
844 eight sink_4_2568(const volatile A&&); // { dg-message "" }
849 const A ca = a; // { dg-error "deleted" }
851 const volatile A cva = a; // { dg-error "deleted" }
852 sink_4_2568(va); // { dg-error "lvalue" }
853 sink_4_2568(cva); // { dg-error "lvalue" }
857 two sink_4_2578(const A&);
858 five sink_4_2578( A&&);
859 seven sink_4_2578(volatile A&&); // { dg-message "" }
860 eight sink_4_2578(const volatile A&&); // { dg-message "" }
865 const A ca = a; // { dg-error "deleted" }
867 const volatile A cva = a; // { dg-error "deleted" }
868 sink_4_2578(va); // { dg-error "lvalue" }
869 sink_4_2578(cva); // { dg-error "lvalue" }
873 two sink_4_2678(const A&); // { dg-message "note" }
874 six sink_4_2678(const A&&); // { dg-message "note" }
875 seven sink_4_2678(volatile A&&); // { dg-message "" }
876 eight sink_4_2678(const volatile A&&); // { dg-message "" }
881 const A ca = a; // { dg-error "deleted" }
883 const volatile A cva = a; // { dg-error "deleted" }
884 sink_4_2678(va); // { dg-error "lvalue" }
885 sink_4_2678(cva); // { dg-error "lvalue" }
886 sink_4_2678(source()); // { dg-error "ambiguous" }
887 // { dg-message "candidate" "candidate note" { target *-*-* } 886 }
891 three sink_4_3456(volatile A&); // { dg-message "three sink_4_3456|no known conversion" }
892 four sink_4_3456(const volatile A&); // { dg-message "note" }
893 five sink_4_3456( A&&); // { dg-message "note" }
894 six sink_4_3456(const A&&); // { dg-message "note" }
899 const A ca = a; // { dg-error "deleted" }
901 const volatile A cva = a; // { dg-error "deleted" }
902 sink_4_3456(v_source()); // { dg-error "no match" }
903 // { dg-message "candidate" "candidate note" { target *-*-* } 902 }
904 sink_4_3456(cv_source()); // { dg-error "no match" }
905 // { dg-message "candidate" "candidate note" { target *-*-* } 904 }
909 three sink_4_3457(volatile A&); // { dg-message "three sink_4_3457|no known conversion" }
910 four sink_4_3457(const volatile A&); // { dg-message "note" }
911 five sink_4_3457( A&&); // { dg-message "note" }
912 seven sink_4_3457(volatile A&&); // { dg-message "note" }
917 const A ca = a; // { dg-error "deleted" }
919 const volatile A cva = a; // { dg-error "deleted" }
920 sink_4_3457(c_source()); // { dg-error "no match" }
921 // { dg-message "candidate" "candidate note" { target *-*-* } 920 }
922 sink_4_3457(cv_source()); // { dg-error "no match" }
923 // { dg-message "candidate" "candidate note" { target *-*-* } 922 }
927 three sink_4_3467(volatile A&); // { dg-message "three sink_4_3467|no known conversion" }
928 four sink_4_3467(const volatile A&); // { dg-message "note" }
929 six sink_4_3467(const A&&); // { dg-message "note" }
930 seven sink_4_3467(volatile A&&); // { dg-message "note" }
935 const A ca = a; // { dg-error "deleted" }
937 const volatile A cva = a; // { dg-error "deleted" }
938 sink_4_3467(source()); // { dg-error "ambiguous" }
939 // { dg-message "candidate" "candidate note" { target *-*-* } 938 }
940 sink_4_3467(cv_source()); // { dg-error "no match" }
941 // { dg-message "candidate" "candidate note" { target *-*-* } 940 }
945 three sink_4_3567(volatile A&); // { dg-message "three sink_4_3567|no known conversion" }
946 five sink_4_3567( A&&); // { dg-message "note" }
947 six sink_4_3567(const A&&); // { dg-message "" }
948 seven sink_4_3567(volatile A&&); // { dg-message "note" }
953 const A ca = a; // { dg-error "deleted" }
955 const volatile A cva = a; // { dg-error "deleted" }
956 sink_4_3567(ca); // { dg-error "lvalue" }
957 sink_4_3567(cva); // { dg-error "no match" }
958 // { dg-message "candidate" "candidate note" { target *-*-* } 957 }
959 sink_4_3567(cv_source()); // { dg-error "no match" }
960 // { dg-message "candidate" "candidate note" { target *-*-* } 959 }
964 three sink_4_3568(volatile A&);
965 five sink_4_3568( A&&);
966 six sink_4_3568(const A&&); // { dg-message "" }
967 eight sink_4_3568(const volatile A&&); // { dg-message "" }
972 const A ca = a; // { dg-error "deleted" }
974 const volatile A cva = a; // { dg-error "deleted" }
975 sink_4_3568(ca); // { dg-error "lvalue" }
976 sink_4_3568(cva); // { dg-error "lvalue" }
980 three sink_4_3578(volatile A&);
981 five sink_4_3578( A&&);
982 seven sink_4_3578(volatile A&&);
983 eight sink_4_3578(const volatile A&&); // { dg-message "" }
988 const A ca = a; // { dg-error "deleted" }
990 const volatile A cva = a; // { dg-error "deleted" }
991 sink_4_3578(ca); // { dg-error "lvalue" }
992 sink_4_3578(cva); // { dg-error "lvalue" }
996 three sink_4_3678(volatile A&);
997 six sink_4_3678(const A&&); // { dg-message "" }
998 seven sink_4_3678(volatile A&&); // { dg-message "note" }
999 eight sink_4_3678(const volatile A&&); // { dg-message "" }
1004 const A ca = a; // { dg-error "deleted" }
1006 const volatile A cva = a; // { dg-error "deleted" }
1007 sink_4_3678(ca); // { dg-error "lvalue" }
1008 sink_4_3678(cva); // { dg-error "lvalue" }
1009 sink_4_3678(source()); // { dg-error "ambiguous" }
1010 // { dg-message "candidate" "candidate note" { target *-*-* } 1009 }
1014 four sink_4_4567(const volatile A&); // { dg-message "note" }
1015 five sink_4_4567( A&&); // { dg-message "note" }
1016 six sink_4_4567(const A&&); // { dg-message "note" }
1017 seven sink_4_4567(volatile A&&); // { dg-message "note" }
1022 const A ca = a; // { dg-error "deleted" }
1024 const volatile A cva = a; // { dg-error "deleted" }
1025 sink_4_4567(cv_source()); // { dg-error "no match" }
1026 // { dg-message "candidate" "candidate note" { target *-*-* } 1025 }
1030 four sink_4_4678(const volatile A&);
1031 six sink_4_4678(const A&&); // { dg-message "note" }
1032 seven sink_4_4678(volatile A&&); // { dg-message "note" }
1033 eight sink_4_4678(const volatile A&&); // { dg-message "note" }
1038 const A ca = a; // { dg-error "deleted" }
1040 const volatile A cva = a; // { dg-error "deleted" }
1041 sink_4_4678(source()); // { dg-error "ambiguous" }
1042 // { dg-message "candidate" "candidate note" { target *-*-* } 1041 }
1046 five sink_4_5678( A&&); // { dg-message "" }
1047 six sink_4_5678(const A&&); // { dg-message "" }
1048 seven sink_4_5678(volatile A&&); // { dg-message "" }
1049 eight sink_4_5678(const volatile A&&); // { dg-message "" }
1054 const A ca = a; // { dg-error "deleted" }
1056 const volatile A cva = a; // { dg-error "deleted" }
1057 sink_4_5678(a); // { dg-error "lvalue" }
1058 sink_4_5678(ca); // { dg-error "lvalue" }
1059 sink_4_5678(va); // { dg-error "lvalue" }
1060 sink_4_5678(cva); // { dg-error "lvalue" }
1066 return test4_1235() + test4_1236() + test4_1237() + test4_1256() + test4_1257() +
1067 test4_1267() + test4_1356() + test4_1357() + test4_1467() + test4_1567() +
1068 test4_1678() + test4_2345() + test4_2346() + test4_2347() + test4_2348() +
1069 test4_2356() + test4_2357() + test4_2358() + test4_2367() + test4_2368() +
1070 test4_2378() + test4_2467() + test4_2567() + test4_2678() + test4_3467() +
1071 test4_3567() + test4_3678() + test4_4678();