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 "-fno-ipa-icf" } 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(); // { dg-warning "deprecated" "" { target c++2a } } 29 const volatile A cv_source(); // { dg-warning "deprecated" "" { target c++2a } } 30 31 // 5 at a time 32 33 one sink_5_12345( A&); // { dg-message "one sink_5_12345|no known conversion" } 34 two sink_5_12345(const A&); 35 three sink_5_12345(volatile A&); 36 four sink_5_12345(const volatile A&); 37 five sink_5_12345( A&&); 38 39 int test5_12345() 40 { 41 A a; 42 const A ca = a; // { dg-error "deleted" } 43 volatile A va; 44 const volatile A cva = a; // { dg-error "deleted" } 45 sink_5_12345(v_source()); // { dg-error "" } 46 sink_5_12345(cv_source()); // { dg-error "" } 47 return 0; 48 } 49 50 one sink_5_12346( A&); // { dg-message "one sink_5_12346|no known conversion" } 51 two sink_5_12346(const A&); 52 three sink_5_12346(volatile A&); 53 four sink_5_12346(const volatile A&); 54 six sink_5_12346(const A&&); 55 56 int test5_12346() 57 { 58 A a; 59 const A ca = a; // { dg-error "deleted" } 60 volatile A va; 61 const volatile A cva = a; // { dg-error "deleted" } 62 sink_5_12346(v_source()); // { dg-error "" } 63 sink_5_12346(cv_source()); // { dg-error "" } 64 return 0; 65 } 66 67 one sink_5_12347( A&); // { dg-message "one sink_5_12347|no known conversion" } 68 two sink_5_12347(const A&); 69 three sink_5_12347(volatile A&); 70 four sink_5_12347(const volatile A&); 71 seven sink_5_12347(volatile A&&); 72 73 int test5_12347() 74 { 75 A a; 76 const A ca = a; // { dg-error "deleted" } 77 volatile A va; 78 const volatile A cva = a; // { dg-error "deleted" } 79 sink_5_12347(cv_source()); // { dg-error "" } 80 return 0; 81 } 82 83 one sink_5_12356( A&); // { dg-message "one sink_5_12356|no known conversion" } 84 two sink_5_12356(const A&); 85 three sink_5_12356(volatile A&); 86 five sink_5_12356( A&&); 87 six sink_5_12356(const A&&); 88 89 int test5_12356() 90 { 91 A a; 92 const A ca = a; // { dg-error "deleted" } 93 volatile A va; 94 const volatile A cva = a; // { dg-error "deleted" } 95 sink_5_12356(cva); // { dg-error "" } 96 sink_5_12356(v_source()); // { dg-error "" } 97 sink_5_12356(cv_source()); // { dg-error "" } 98 return 0; 99 } 100 101 one sink_5_12357( A&); // { dg-message "one sink_5_12357|no known conversion" } 102 two sink_5_12357(const A&); 103 three sink_5_12357(volatile A&); 104 five sink_5_12357( A&&); 105 seven sink_5_12357(volatile A&&); 106 107 int test5_12357() 108 { 109 A a; 110 const A ca = a; // { dg-error "deleted" } 111 volatile A va; 112 const volatile A cva = a; // { dg-error "deleted" } 113 sink_5_12357(cva); // { dg-error "" } 114 sink_5_12357(cv_source()); // { dg-error "" } 115 return 0; 116 } 117 118 one sink_5_12358( A&); 119 two sink_5_12358(const A&); 120 three sink_5_12358(volatile A&); 121 five sink_5_12358( A&&); 122 eight sink_5_12358(const volatile A&&); // { dg-message "" } 123 124 int test5_12358() 125 { 126 A a; 127 const A ca = a; // { dg-error "deleted" } 128 volatile A va; 129 const volatile A cva = a; // { dg-error "deleted" } 130 sink_5_12358(cva); // { dg-error "" } 131 return 0; 132 } 133 134 one sink_5_12367( A&); // { dg-message "one sink_5_12367|no known conversion" } 135 two sink_5_12367(const A&); 136 three sink_5_12367(volatile A&); 137 six sink_5_12367(const A&&); 138 seven sink_5_12367(volatile A&&); 139 140 int test5_12367() 141 { 142 A a; 143 const A ca = a; // { dg-error "deleted" } 144 volatile A va; 145 const volatile A cva = a; // { dg-error "deleted" } 146 sink_5_12367(cva); // { dg-error "" } 147 sink_5_12367(source()); // { dg-error "" } 148 sink_5_12367(cv_source()); // { dg-error "" } 149 return 0; 150 } 151 152 one sink_5_12368( A&); 153 two sink_5_12368(const A&); 154 three sink_5_12368(volatile A&); 155 six sink_5_12368(const A&&); 156 eight sink_5_12368(const volatile A&&); // { dg-message "" } 157 158 int test5_12368() 159 { 160 A a; 161 const A ca = a; // { dg-error "deleted" } 162 volatile A va; 163 const volatile A cva = a; // { dg-error "deleted" } 164 sink_5_12368(cva); // { dg-error "" } 165 return 0; 166 } 167 168 one sink_5_12378( A&); 169 two sink_5_12378(const A&); 170 three sink_5_12378(volatile A&); 171 seven sink_5_12378(volatile A&&); 172 eight sink_5_12378(const volatile A&&); // { dg-message "" } 173 174 int test5_12378() 175 { 176 A a; 177 const A ca = a; // { dg-error "deleted" } 178 volatile A va; 179 const volatile A cva = a; // { dg-error "deleted" } 180 sink_5_12378(cva); // { dg-error "" } 181 return 0; 182 } 183 184 one sink_5_12456( A&); // { dg-message "one sink_5_12456|no known conversion" } 185 two sink_5_12456(const A&); 186 four sink_5_12456(const volatile A&); 187 five sink_5_12456( A&&); 188 six sink_5_12456(const A&&); 189 190 int test5_12456() 191 { 192 A a; 193 const A ca = a; // { dg-error "deleted" } 194 volatile A va; 195 const volatile A cva = a; // { dg-error "deleted" } 196 sink_5_12456(v_source()); // { dg-error "" } 197 sink_5_12456(cv_source()); // { dg-error "" } 198 return 0; 199 } 200 201 one sink_5_12457( A&); // { dg-message "one sink_5_12457|no known conversion" } 202 two sink_5_12457(const A&); 203 four sink_5_12457(const volatile A&); 204 five sink_5_12457( A&&); 205 seven sink_5_12457(volatile A&&); 206 207 int test5_12457() 208 { 209 A a; 210 const A ca = a; // { dg-error "deleted" } 211 volatile A va; 212 const volatile A cva = a; // { dg-error "deleted" } 213 sink_5_12457(cv_source()); // { dg-error "" } 214 return 0; 215 } 216 217 one sink_5_12467( A&); // { dg-message "one sink_5_12467|no known conversion" } 218 two sink_5_12467(const A&); 219 four sink_5_12467(const volatile A&); 220 six sink_5_12467(const A&&); 221 seven sink_5_12467(volatile A&&); 222 223 int test5_12467() 224 { 225 A a; 226 const A ca = a; // { dg-error "deleted" } 227 volatile A va; 228 const volatile A cva = a; // { dg-error "deleted" } 229 sink_5_12467(source()); // { dg-error "" } 230 sink_5_12467(cv_source()); // { dg-error "" } 231 return 0; 232 } 233 234 one sink_5_12567( A&); // { dg-message "one sink_5_12567|no known conversion" } 235 two sink_5_12567(const A&); 236 five sink_5_12567( A&&); 237 six sink_5_12567(const A&&); 238 seven sink_5_12567(volatile A&&); // { dg-message "" } 239 240 int test5_12567() 241 { 242 A a; 243 const A ca = a; // { dg-error "deleted" } 244 volatile A va; 245 const volatile A cva = a; // { dg-error "deleted" } 246 sink_5_12567(va); // { dg-error "" } 247 sink_5_12567(cva); // { dg-error "" } 248 sink_5_12567(cv_source()); // { dg-error "" } 249 return 0; 250 } 251 252 one sink_5_12568( A&); 253 two sink_5_12568(const A&); 254 five sink_5_12568( A&&); 255 six sink_5_12568(const A&&); 256 eight sink_5_12568(const volatile A&&); // { dg-message "" } 257 258 int test5_12568() 259 { 260 A a; 261 const A ca = a; // { dg-error "deleted" } 262 volatile A va; 263 const volatile A cva = a; // { dg-error "deleted" } 264 sink_5_12568(va); // { dg-error "" } 265 sink_5_12568(cva); // { dg-error "" } 266 return 0; 267 } 268 269 one sink_5_12578( A&); 270 two sink_5_12578(const A&); 271 five sink_5_12578( A&&); 272 seven sink_5_12578(volatile A&&); // { dg-message "" } 273 eight sink_5_12578(const volatile A&&); // { dg-message "" } 274 275 int test5_12578() 276 { 277 A a; 278 const A ca = a; // { dg-error "deleted" } 279 volatile A va; 280 const volatile A cva = a; // { dg-error "deleted" } 281 sink_5_12578(va); // { dg-error "" } 282 sink_5_12578(cva); // { dg-error "" } 283 return 0; 284 } 285 286 one sink_5_12678( A&); 287 two sink_5_12678(const A&); 288 six sink_5_12678(const A&&); 289 seven sink_5_12678(volatile A&&); // { dg-message "" } 290 eight sink_5_12678(const volatile A&&); // { dg-message "" } 291 292 int test5_12678() 293 { 294 A a; 295 const A ca = a; // { dg-error "deleted" } 296 volatile A va; 297 const volatile A cva = a; // { dg-error "deleted" } 298 sink_5_12678(va); // { dg-error "" } 299 sink_5_12678(cva); // { dg-error "" } 300 sink_5_12678(source()); // { dg-error "" } 301 return 0; 302 } 303 304 one sink_5_13456( A&); // { dg-message "one sink_5_13456|no known conversion" } 305 three sink_5_13456(volatile A&); 306 four sink_5_13456(const volatile A&); 307 five sink_5_13456( A&&); 308 six sink_5_13456(const A&&); 309 310 int test5_13456() 311 { 312 A a; 313 const A ca = a; // { dg-error "deleted" } 314 volatile A va; 315 const volatile A cva = a; // { dg-error "deleted" } 316 sink_5_13456(v_source()); // { dg-error "" } 317 sink_5_13456(cv_source()); // { dg-error "" } 318 return 0; 319 } 320 321 one sink_5_13457( A&); // { dg-message "one sink_5_13457|no known conversion" } 322 three sink_5_13457(volatile A&); 323 four sink_5_13457(const volatile A&); 324 five sink_5_13457( A&&); 325 seven sink_5_13457(volatile A&&); 326 327 int test5_13457() 328 { 329 A a; 330 const A ca = a; // { dg-error "deleted" } 331 volatile A va; 332 const volatile A cva = a; // { dg-error "deleted" } 333 sink_5_13457(c_source()); // { dg-error "" } 334 sink_5_13457(cv_source()); // { dg-error "" } 335 return 0; 336 } 337 338 one sink_5_13467( A&); // { dg-message "one sink_5_13467|no known conversion" } 339 three sink_5_13467(volatile A&); 340 four sink_5_13467(const volatile A&); 341 six sink_5_13467(const A&&); 342 seven sink_5_13467(volatile A&&); 343 344 int test5_13467() 345 { 346 A a; 347 const A ca = a; // { dg-error "deleted" } 348 volatile A va; 349 const volatile A cva = a; // { dg-error "deleted" } 350 sink_5_13467(source()); // { dg-error "" } 351 sink_5_13467(cv_source()); // { dg-error "" } 352 return 0; 353 } 354 355 one sink_5_13567( A&); // { dg-message "one sink_5_13567|no known conversion" } 356 three sink_5_13567(volatile A&); 357 five sink_5_13567( A&&); 358 six sink_5_13567(const A&&); // { dg-message "" } 359 seven sink_5_13567(volatile A&&); 360 361 int test5_13567() 362 { 363 A a; 364 const A ca = a; // { dg-error "deleted" } 365 volatile A va; 366 const volatile A cva = a; // { dg-error "deleted" } 367 sink_5_13567(ca); // { dg-error "" } 368 sink_5_13567(cva); // { dg-error "" } 369 sink_5_13567(cv_source()); // { dg-error "" } 370 return 0; 371 } 372 373 one sink_5_13568( A&); 374 three sink_5_13568(volatile A&); 375 five sink_5_13568( A&&); 376 six sink_5_13568(const A&&); // { dg-message "" } 377 eight sink_5_13568(const volatile A&&); // { dg-message "" } 378 379 int test5_13568() 380 { 381 A a; 382 const A ca = a; // { dg-error "deleted" } 383 volatile A va; 384 const volatile A cva = a; // { dg-error "deleted" } 385 sink_5_13568(ca); // { dg-error "" } 386 sink_5_13568(cva); // { dg-error "" } 387 return 0; 388 } 389 390 one sink_5_13578( A&); 391 three sink_5_13578(volatile A&); 392 five sink_5_13578( A&&); 393 seven sink_5_13578(volatile A&&); 394 eight sink_5_13578(const volatile A&&); // { dg-message "" } 395 396 int test5_13578() 397 { 398 A a; 399 const A ca = a; // { dg-error "deleted" } 400 volatile A va; 401 const volatile A cva = a; // { dg-error "deleted" } 402 sink_5_13578(ca); // { dg-error "" } 403 sink_5_13578(cva); // { dg-error "" } 404 return 0; 405 } 406 407 one sink_5_13678( A&); 408 three sink_5_13678(volatile A&); 409 six sink_5_13678(const A&&); // { dg-message "" } 410 seven sink_5_13678(volatile A&&); 411 eight sink_5_13678(const volatile A&&); // { dg-message "" } 412 413 int test5_13678() 414 { 415 A a; 416 const A ca = a; // { dg-error "deleted" } 417 volatile A va; 418 const volatile A cva = a; // { dg-error "deleted" } 419 sink_5_13678(ca); // { dg-error "" } 420 sink_5_13678(cva); // { dg-error "" } 421 sink_5_13678(source()); // { dg-error "" } 422 return 0; 423 } 424 425 one sink_5_14567( A&); // { dg-message "one sink_5_14567|no known conversion" } 426 four sink_5_14567(const volatile A&); 427 five sink_5_14567( A&&); 428 six sink_5_14567(const A&&); 429 seven sink_5_14567(volatile A&&); 430 431 int test5_14567() 432 { 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_5_14567(cv_source()); // { dg-error "" } 438 return 0; 439 } 440 441 one sink_5_14678( A&); 442 four sink_5_14678(const volatile A&); 443 six sink_5_14678(const A&&); 444 seven sink_5_14678(volatile A&&); 445 eight sink_5_14678(const volatile A&&); 446 447 int test5_14678() 448 { 449 A a; 450 const A ca = a; // { dg-error "deleted" } 451 volatile A va; 452 const volatile A cva = a; // { dg-error "deleted" } 453 sink_5_14678(source()); // { dg-error "" } 454 return 0; 455 } 456 457 one sink_5_15678( A&); 458 five sink_5_15678( A&&); 459 six sink_5_15678(const A&&); // { dg-message "" } 460 seven sink_5_15678(volatile A&&); // { dg-message "" } 461 eight sink_5_15678(const volatile A&&); // { dg-message "" } 462 463 int test5_15678() 464 { 465 A a; 466 const A ca = a; // { dg-error "deleted" } 467 volatile A va; 468 const volatile A cva = a; // { dg-error "deleted" } 469 sink_5_15678(ca); // { dg-error "" } 470 sink_5_15678(va); // { dg-error "" } 471 sink_5_15678(cva); // { dg-error "" } 472 return 0; 473 } 474 475 two sink_5_23456(const A&); // { dg-message "two sink_5_23456|no known conversion" } 476 three sink_5_23456(volatile A&); 477 four sink_5_23456(const volatile A&); 478 five sink_5_23456( A&&); 479 six sink_5_23456(const A&&); 480 481 int test5_23456() 482 { 483 A a; 484 const A ca = a; // { dg-error "deleted" } 485 volatile A va; 486 const volatile A cva = a; // { dg-error "deleted" } 487 sink_5_23456(a); // { dg-error "" } 488 sink_5_23456(v_source()); // { dg-error "" } 489 sink_5_23456(cv_source()); // { dg-error "" } 490 return 0; 491 } 492 493 two sink_5_23457(const A&); // { dg-message "two sink_5_23457|no known conversion" } 494 three sink_5_23457(volatile A&); 495 four sink_5_23457(const volatile A&); 496 five sink_5_23457( A&&); 497 seven sink_5_23457(volatile A&&); 498 499 int test5_23457() 500 { 501 A a; 502 const A ca = a; // { dg-error "deleted" } 503 volatile A va; 504 const volatile A cva = a; // { dg-error "deleted" } 505 sink_5_23457(a); // { dg-error "" } 506 sink_5_23457(cv_source()); // { dg-error "" } 507 return 0; 508 } 509 510 two sink_5_23458(const A&); 511 three sink_5_23458(volatile A&); 512 four sink_5_23458(const volatile A&); 513 five sink_5_23458( A&&); 514 eight sink_5_23458(const volatile A&&); 515 516 int test5_23458() 517 { 518 A a; 519 const A ca = a; // { dg-error "deleted" } 520 volatile A va; 521 const volatile A cva = a; // { dg-error "deleted" } 522 sink_5_23458(a); // { dg-error "" } 523 return 0; 524 } 525 526 two sink_5_23467(const A&); // { dg-message "two sink_5_23467|no known conversion" } 527 three sink_5_23467(volatile A&); 528 four sink_5_23467(const volatile A&); 529 six sink_5_23467(const A&&); 530 seven sink_5_23467(volatile A&&); 531 532 int test5_23467() 533 { 534 A a; 535 const A ca = a; // { dg-error "deleted" } 536 volatile A va; 537 const volatile A cva = a; // { dg-error "deleted" } 538 sink_5_23467(a); // { dg-error "" } 539 sink_5_23467(source()); // { dg-error "" } 540 sink_5_23467(cv_source()); // { dg-error "" } 541 return 0; 542 } 543 544 two sink_5_23468(const A&); 545 three sink_5_23468(volatile A&); 546 four sink_5_23468(const volatile A&); 547 six sink_5_23468(const A&&); 548 eight sink_5_23468(const volatile A&&); 549 550 int test5_23468() 551 { 552 A a; 553 const A ca = a; // { dg-error "deleted" } 554 volatile A va; 555 const volatile A cva = a; // { dg-error "deleted" } 556 sink_5_23468(a); // { dg-error "" } 557 return 0; 558 } 559 560 two sink_5_23478(const A&); 561 three sink_5_23478(volatile A&); 562 four sink_5_23478(const volatile A&); 563 seven sink_5_23478(volatile A&&); 564 eight sink_5_23478(const volatile A&&); 565 566 int test5_23478() 567 { 568 A a; 569 const A ca = a; // { dg-error "deleted" } 570 volatile A va; 571 const volatile A cva = a; // { dg-error "deleted" } 572 sink_5_23478(a); // { dg-error "" } 573 return 0; 574 } 575 576 two sink_5_23567(const A&); // { dg-message "two sink_5_23567|no known conversion" } 577 three sink_5_23567(volatile A&); 578 five sink_5_23567( A&&); 579 six sink_5_23567(const A&&); 580 seven sink_5_23567(volatile A&&); 581 582 int test5_23567() 583 { 584 A a; 585 const A ca = a; // { dg-error "deleted" } 586 volatile A va; 587 const volatile A cva = a; // { dg-error "deleted" } 588 sink_5_23567(a); // { dg-error "" } 589 sink_5_23567(cva); // { dg-error "" } 590 sink_5_23567(cv_source()); // { dg-error "" } 591 return 0; 592 } 593 594 two sink_5_23568(const A&); 595 three sink_5_23568(volatile A&); 596 five sink_5_23568( A&&); 597 six sink_5_23568(const A&&); 598 eight sink_5_23568(const volatile A&&); 599 600 int test5_23568() 601 { 602 A a; 603 const A ca = a; // { dg-error "deleted" } 604 volatile A va; 605 const volatile A cva = a; // { dg-error "deleted" } 606 sink_5_23568(cva); // { dg-error "" } 607 sink_5_23568(a); // { dg-error "" } 608 return 0; 609 } 610 611 two sink_5_23578(const A&); 612 three sink_5_23578(volatile A&); 613 five sink_5_23578( A&&); 614 seven sink_5_23578(volatile A&&); 615 eight sink_5_23578(const volatile A&&); // { dg-message "" } 616 617 int test5_23578() 618 { 619 A a; 620 const A ca = a; // { dg-error "deleted" } 621 volatile A va; 622 const volatile A cva = a; // { dg-error "deleted" } 623 sink_5_23578(cva); // { dg-error "" } 624 sink_5_23578(a); // { dg-error "" } 625 return 0; 626 } 627 628 two sink_5_23678(const A&); 629 three sink_5_23678(volatile A&); 630 six sink_5_23678(const A&&); 631 seven sink_5_23678(volatile A&&); 632 eight sink_5_23678(const volatile A&&); // { dg-message "" } 633 634 int test5_23678() 635 { 636 A a; 637 const A ca = a; // { dg-error "deleted" } 638 volatile A va; 639 const volatile A cva = a; // { dg-error "deleted" } 640 sink_5_23678(a); // { dg-error "" } 641 sink_5_23678(cva); // { dg-error "" } 642 sink_5_23678(source()); // { dg-error "" } 643 return 0; 644 } 645 646 two sink_5_24567(const A&); // { dg-message "two sink_5_24567|no known conversion" } 647 four sink_5_24567(const volatile A&); 648 five sink_5_24567( A&&); 649 six sink_5_24567(const A&&); 650 seven sink_5_24567(volatile A&&); 651 652 int test5_24567() 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_5_24567(cv_source()); // { dg-error "" } 659 return 0; 660 } 661 662 two sink_5_24678(const A&); 663 four sink_5_24678(const volatile A&); 664 six sink_5_24678(const A&&); 665 seven sink_5_24678(volatile A&&); 666 eight sink_5_24678(const volatile A&&); 667 668 int test5_24678() 669 { 670 A a; 671 const A ca = a; // { dg-error "deleted" } 672 volatile A va; 673 const volatile A cva = a; // { dg-error "deleted" } 674 sink_5_24678(source()); // { dg-error "" } 675 return 0; 676 } 677 678 two sink_5_25678(const A&); 679 five sink_5_25678( A&&); 680 six sink_5_25678(const A&&); 681 seven sink_5_25678(volatile A&&); // { dg-message "" } 682 eight sink_5_25678(const volatile A&&); // { dg-message "" } 683 684 int test5_25678() 685 { 686 A a; 687 const A ca = a; // { dg-error "deleted" } 688 volatile A va; 689 const volatile A cva = a; // { dg-error "deleted" } 690 sink_5_25678(va); // { dg-error "" } 691 sink_5_25678(cva); // { dg-error "" } 692 return 0; 693 } 694 695 three sink_5_34567(volatile A&); // { dg-message "three sink_5_34567|no known conversion" } 696 four sink_5_34567(const volatile A&); 697 five sink_5_34567( A&&); 698 six sink_5_34567(const A&&); 699 seven sink_5_34567(volatile A&&); 700 701 int test5_34567() 702 { 703 A a; 704 const A ca = a; // { dg-error "deleted" } 705 volatile A va; 706 const volatile A cva = a; // { dg-error "deleted" } 707 sink_5_34567(cv_source()); // { dg-error "" } 708 return 0; 709 } 710 711 three sink_5_34678(volatile A&); 712 four sink_5_34678(const volatile A&); 713 six sink_5_34678(const A&&); 714 seven sink_5_34678(volatile A&&); 715 eight sink_5_34678(const volatile A&&); 716 717 int test5_34678() 718 { 719 A a; 720 const A ca = a; // { dg-error "deleted" } 721 volatile A va; 722 const volatile A cva = a; // { dg-error "deleted" } 723 sink_5_34678(source()); // { dg-error "" } 724 return 0; 725 } 726 727 three sink_5_35678(volatile A&); 728 five sink_5_35678( A&&); 729 six sink_5_35678(const A&&); // { dg-message "" } 730 seven sink_5_35678(volatile A&&); 731 eight sink_5_35678(const volatile A&&); // { dg-message "" } 732 733 int test5_35678() 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_5_35678(ca); // { dg-error "" } 740 sink_5_35678(cva); // { dg-error "" } 741 return 0; 742 } 743 744 int main() 745 { 746 return test5_12356() + test5_12357() + test5_12367() + test5_12467() + 747 test5_12567() + test5_12678() + test5_13467() + test5_13567() + 748 test5_13678() + test5_13678() + test5_23456() + test5_23457() + 749 test5_23458() + test5_23467() + test5_23468() + test5_23478() + 750 test5_23567() + test5_23568() + test5_23578() + test5_23678() + 751 test5_24678() + test5_34678(); 752 } 753