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(); 29 const volatile A cv_source(); 30 31 // 3 at a time 32 33 one sink_3_123( A&); 34 two sink_3_123(const A&); 35 three sink_3_123(volatile A&); 36 37 int test3_123() 38 { 39 A a; 40 const A ca = 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; 47 } 48 49 one sink_3_125( A&); 50 two sink_3_125(const A&); 51 five sink_3_125( A&&); 52 53 one sink_3_124( A&); 54 two sink_3_124(const A&); 55 four sink_3_124(const volatile A&); 56 57 int test3_124() 58 { 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; 66 } 67 68 int test3_125() 69 { 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; 79 } 80 81 one sink_3_126( A&); 82 two sink_3_126(const A&); 83 six sink_3_126(const A&&); 84 85 int test3_126() 86 { 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; 96 } 97 98 one sink_3_127( A&); 99 two sink_3_127(const A&); 100 seven sink_3_127(volatile A&&); 101 102 int test3_127() 103 { 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; 112 } 113 114 one sink_3_128( A&); 115 two sink_3_128(const A&); 116 eight sink_3_128(const volatile A&&); 117 118 int test3_128() 119 { 120 A a; 121 const A ca = a; // { dg-error "deleted" } 122 volatile A va; 123 const volatile A cva = a; // { dg-error "deleted" } 124 125 sink_3_128(va); // { dg-error "" } 126 sink_3_128(cva); // { dg-error "" } 127 return 0; 128 } 129 130 one sink_3_134( A&); 131 three sink_3_134(volatile A&); 132 four sink_3_134(const volatile A&); 133 134 int test3_134() 135 { 136 A a; 137 const A ca = a; // { dg-error "deleted" } 138 volatile A va; 139 const volatile A cva = a; // { dg-error "deleted" } 140 sink_3_134(source()); // { dg-error "" } 141 sink_3_134(c_source()); // { dg-error "" } 142 sink_3_134(v_source()); // { dg-error "" } 143 sink_3_134(cv_source()); // { dg-error "" } 144 return 0; 145 } 146 147 one sink_3_135( A&); 148 three sink_3_135(volatile A&); 149 five sink_3_135( A&&); 150 151 int test3_135() 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_3_135(ca); // { dg-error "" } 158 sink_3_135(cva); // { dg-error "" } 159 sink_3_135(c_source()); // { dg-error "" } 160 sink_3_135(v_source()); // { dg-error "" } 161 sink_3_135(cv_source()); // { dg-error "" } 162 return 0; 163 } 164 165 one sink_3_136( A&); 166 three sink_3_136(volatile A&); 167 six sink_3_136(const A&&); 168 169 int test3_136() 170 { 171 A a; 172 const A ca = a; // { dg-error "deleted" } 173 volatile A va; 174 const volatile A cva = a; // { dg-error "deleted" } 175 sink_3_136(ca); // { dg-error "" } 176 sink_3_136(cva); // { dg-error "" } 177 sink_3_136(v_source()); // { dg-error "" } 178 sink_3_136(cv_source()); // { dg-error "" } 179 return 0; 180 } 181 182 one sink_3_137( A&); 183 three sink_3_137(volatile A&); 184 seven sink_3_137(volatile A&&); 185 186 int test3_137() 187 { 188 A a; 189 const A ca = a; // { dg-error "deleted" } 190 volatile A va; 191 const volatile A cva = a; // { dg-error "deleted" } 192 sink_3_137(ca); // { dg-error "" } 193 sink_3_137(cva); // { dg-error "" } 194 sink_3_137(c_source()); // { dg-error "" } 195 sink_3_137(cv_source()); // { dg-error "" } 196 return 0; 197 } 198 199 one sink_3_138( A&); 200 three sink_3_138(volatile A&); 201 eight sink_3_138(const volatile A&&); 202 203 int test3_138() 204 { 205 A a; 206 const A ca = a; // { dg-error "deleted" } 207 volatile A va; 208 const volatile A cva = a; // { dg-error "deleted" } 209 sink_3_138(ca); // { dg-error "" } 210 sink_3_138(cva); // { dg-error "" } 211 return 0; 212 } 213 214 one sink_3_145( A&); 215 four sink_3_145(const volatile A&); 216 five sink_3_145( A&&); 217 218 int test3_145() 219 { 220 A a; 221 const A ca = a; // { dg-error "deleted" } 222 volatile A va; 223 const volatile A cva = a; // { dg-error "deleted" } 224 sink_3_145(c_source()); // { dg-error "" } 225 sink_3_145(v_source()); // { dg-error "" } 226 sink_3_145(cv_source()); // { dg-error "" } 227 return 0; 228 } 229 230 one sink_3_146( A&); 231 four sink_3_146(const volatile A&); 232 six sink_3_146(const A&&); 233 234 int test3_146() 235 { 236 A a; 237 const A ca = a; // { dg-error "deleted" } 238 volatile A va; 239 const volatile A cva = a; // { dg-error "deleted" } 240 sink_3_146(v_source()); // { dg-error "" } 241 sink_3_146(cv_source()); // { dg-error "" } 242 return 0; 243 } 244 245 one sink_3_147( A&); 246 four sink_3_147(const volatile A&); 247 seven sink_3_147(volatile A&&); 248 249 int test3_147() 250 { 251 A a; 252 const A ca = a; // { dg-error "deleted" } 253 volatile A va; 254 const volatile A cva = a; // { dg-error "deleted" } 255 sink_3_147(c_source()); // { dg-error "" } 256 sink_3_147(cv_source()); // { dg-error "" } 257 return 0; 258 } 259 260 one sink_3_156( A&); 261 five sink_3_156( A&&); 262 six sink_3_156(const A&&); 263 264 int test3_156() 265 { 266 A a; 267 const A ca = a; // { dg-error "deleted" } 268 volatile A va; 269 const volatile A cva = a; // { dg-error "deleted" } 270 sink_3_156(ca); // { dg-error "" } 271 sink_3_156(va); // { dg-error "" } 272 sink_3_156(cva); // { dg-error "" } 273 sink_3_156(v_source()); // { dg-error "" } 274 sink_3_156(cv_source()); // { dg-error "" } 275 return 0; 276 } 277 278 one sink_3_157( A&); 279 five sink_3_157( A&&); 280 seven sink_3_157(volatile A&&); 281 282 int test3_157() 283 { 284 A a; 285 const A ca = a; // { dg-error "deleted" } 286 volatile A va; 287 const volatile A cva = a; // { dg-error "deleted" } 288 sink_3_157(ca); // { dg-error "" } 289 sink_3_157(va); // { dg-error "" } 290 sink_3_157(cva); // { dg-error "" } 291 sink_3_157(c_source()); // { dg-error "" } 292 sink_3_157(cv_source()); // { dg-error "" } 293 return 0; 294 } 295 296 one sink_3_158( A&); 297 five sink_3_158( A&&); 298 eight sink_3_158(const volatile A&&); 299 300 int test3_158() 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_3_158(ca); // { dg-error "" } 307 sink_3_158(va); // { dg-error "" } 308 sink_3_158(cva); // { dg-error "" } 309 return 0; 310 } 311 312 one sink_3_167( A&); 313 six sink_3_167(const A&&); 314 seven sink_3_167(volatile A&&); 315 316 int test3_167() 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_3_167(ca); // { dg-error "" } 323 sink_3_167(va); // { dg-error "" } 324 sink_3_167(cva); // { dg-error "" } 325 sink_3_167(source()); // { dg-error "" } 326 sink_3_167(cv_source()); // { dg-error "" } 327 return 0; 328 } 329 330 one sink_3_168( A&); 331 six sink_3_168(const A&&); 332 eight sink_3_168(const volatile A&&); 333 334 int test3_168() 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_3_168(ca); // { dg-error "" } 341 sink_3_168(va); // { dg-error "" } 342 sink_3_168(cva); // { dg-error "" } 343 return 0; 344 } 345 346 one sink_3_178( A&); 347 seven sink_3_178(volatile A&&); 348 eight sink_3_178(const volatile A&&); 349 350 int test3_178() 351 { 352 A a; 353 const A ca = a; // { dg-error "deleted" } 354 volatile A va; 355 const volatile A cva = a; // { dg-error "deleted" } 356 sink_3_178(ca); // { dg-error "" } 357 sink_3_178(va); // { dg-error "" } 358 sink_3_178(cva); // { dg-error "" } 359 return 0; 360 } 361 362 two sink_3_234(const A&); 363 three sink_3_234(volatile A&); 364 four sink_3_234(const volatile A&); 365 366 int test3_234() 367 { 368 A a; 369 const A ca = a; // { dg-error "deleted" } 370 volatile A va; 371 const volatile A cva = a; // { dg-error "deleted" } 372 sink_3_234(a); // { dg-error "" } 373 sink_3_234(v_source()); // { dg-error "" } 374 sink_3_234(cv_source()); // { dg-error "" } 375 return 0; 376 } 377 378 two sink_3_235(const A&); 379 three sink_3_235(volatile A&); 380 five sink_3_235( A&&); 381 382 int test3_235() 383 { 384 A a; 385 const A ca = a; // { dg-error "deleted" } 386 volatile A va; 387 const volatile A cva = a; // { dg-error "deleted" } 388 sink_3_235(a); // { dg-error "" } 389 sink_3_235(cva); // { dg-error "" } 390 sink_3_235(v_source()); // { dg-error "" } 391 sink_3_235(cv_source()); // { dg-error "" } 392 return 0; 393 } 394 395 two sink_3_236(const A&); 396 three sink_3_236(volatile A&); 397 six sink_3_236(const A&&); 398 399 int test3_236() 400 { 401 A a; 402 const A ca = a; // { dg-error "deleted" } 403 volatile A va; 404 const volatile A cva = a; // { dg-error "deleted" } 405 sink_3_236(a); // { dg-error "" } 406 sink_3_236(cva); // { dg-error "" } 407 sink_3_236(v_source()); // { dg-error "" } 408 sink_3_236(cv_source()); // { dg-error "" } 409 return 0; 410 } 411 412 two sink_3_237(const A&); 413 three sink_3_237(volatile A&); 414 seven sink_3_237(volatile A&&); 415 416 int test3_237() 417 { 418 A a; 419 const A ca = a; // { dg-error "deleted" } 420 volatile A va; 421 const volatile A cva = a; // { dg-error "deleted" } 422 sink_3_237(a); // { dg-error "" } 423 sink_3_237(cva); // { dg-error "" } 424 sink_3_237(cv_source()); // { dg-error "" } 425 return 0; 426 } 427 428 two sink_3_238(const A&); 429 three sink_3_238(volatile A&); 430 eight sink_3_238(const volatile A&&); 431 432 int test3_238() 433 { 434 A a; 435 const A ca = a; // { dg-error "deleted" } 436 volatile A va; 437 const volatile A cva = a; // { dg-error "deleted" } 438 sink_3_238(a); // { dg-error "" } 439 sink_3_238(cva); // { dg-error "" } 440 return 0; 441 } 442 443 two sink_3_245(const A&); 444 four sink_3_245(const volatile A&); 445 five sink_3_245( A&&); 446 447 int test3_245() 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_3_245(v_source()); // { dg-error "" } 454 sink_3_245(cv_source()); // { dg-error "" } 455 return 0; 456 } 457 458 two sink_3_246(const A&); 459 four sink_3_246(const volatile A&); 460 six sink_3_246(const A&&); 461 462 int test3_246() 463 { 464 A a; 465 const A ca = a; // { dg-error "deleted" } 466 volatile A va; 467 const volatile A cva = a; // { dg-error "deleted" } 468 sink_3_246(v_source()); // { dg-error "" } 469 sink_3_246(cv_source()); // { dg-error "" } 470 return 0; 471 } 472 473 two sink_3_247(const A&); 474 four sink_3_247(const volatile A&); 475 seven sink_3_247(volatile A&&); 476 477 int test3_247() 478 { 479 A a; 480 const A ca = a; // { dg-error "deleted" } 481 volatile A va; 482 const volatile A cva = a; // { dg-error "deleted" } 483 sink_3_247(cv_source()); // { dg-error "" } 484 return 0; 485 } 486 487 two sink_3_256(const A&); 488 five sink_3_256( A&&); 489 six sink_3_256(const A&&); 490 491 int test3_256() 492 { 493 A a; 494 const A ca = a; // { dg-error "deleted" } 495 volatile A va; 496 const volatile A cva = a; // { dg-error "deleted" } 497 sink_3_256(va); // { dg-error "" } 498 sink_3_256(cva); // { dg-error "" } 499 sink_3_256(v_source()); // { dg-error "" } 500 sink_3_256(cv_source()); // { dg-error "" } 501 return 0; 502 } 503 504 two sink_3_257(const A&); 505 five sink_3_257( A&&); 506 seven sink_3_257(volatile A&&); 507 508 int test3_257() 509 { 510 A a; 511 const A ca = a; // { dg-error "deleted" } 512 volatile A va; 513 const volatile A cva = a; // { dg-error "deleted" } 514 sink_3_257(va); // { dg-error "" } 515 sink_3_257(cva); // { dg-error "" } 516 sink_3_257(cv_source()); // { dg-error "" } 517 return 0; 518 } 519 520 two sink_3_258(const A&); 521 five sink_3_258( A&&); 522 eight sink_3_258(const volatile A&&); 523 524 int test3_258() 525 { 526 A a; 527 const A ca = a; // { dg-error "deleted" } 528 volatile A va; 529 const volatile A cva = a; // { dg-error "deleted" } 530 sink_3_258(va); // { dg-error "" } 531 sink_3_258(cva); // { dg-error "" } 532 return 0; 533 } 534 535 two sink_3_267(const A&); 536 six sink_3_267(const A&&); 537 seven sink_3_267(volatile A&&); 538 539 int test3_267() 540 { 541 A a; 542 const A ca = a; // { dg-error "deleted" } 543 volatile A va; 544 const volatile A cva = a; // { dg-error "deleted" } 545 sink_3_267(va); // { dg-error "" } 546 sink_3_267(cva); // { dg-error "" } 547 sink_3_267(source()); // { dg-error "" } 548 sink_3_267(cv_source()); // { dg-error "" } 549 return 0; 550 } 551 552 two sink_3_268(const A&); 553 six sink_3_268(const A&&); 554 eight sink_3_268(const volatile A&&); 555 556 int test3_268() 557 { 558 A a; 559 const A ca = a; // { dg-error "deleted" } 560 volatile A va; 561 const volatile A cva = a; // { dg-error "deleted" } 562 sink_3_268(va); // { dg-error "" } 563 sink_3_268(cva); // { dg-error "" } 564 return 0; 565 } 566 567 two sink_3_278(const A&); 568 seven sink_3_278(volatile A&&); 569 eight sink_3_278(const volatile A&&); 570 571 int test3_278() 572 { 573 A a; 574 const A ca = a; // { dg-error "deleted" } 575 volatile A va; 576 const volatile A cva = a; // { dg-error "deleted" } 577 sink_3_278(va); // { dg-error "" } 578 sink_3_278(cva); // { dg-error "" } 579 return 0; 580 } 581 582 three sink_3_345(volatile A&); 583 four sink_3_345(const volatile A&); 584 five sink_3_345( A&&); 585 586 int test3_345() 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_3_345(c_source()); // { dg-error "" } 593 sink_3_345(v_source()); // { dg-error "" } 594 sink_3_345(cv_source()); // { dg-error "" } 595 return 0; 596 } 597 598 three sink_3_346(volatile A&); 599 four sink_3_346(const volatile A&); 600 six sink_3_346(const A&&); 601 602 int test3_346() 603 { 604 A a; 605 const A ca = a; // { dg-error "deleted" } 606 volatile A va; 607 const volatile A cva = a; // { dg-error "deleted" } 608 sink_3_346(v_source()); // { dg-error "" } 609 sink_3_346(cv_source()); // { dg-error "" } 610 return 0; 611 } 612 613 three sink_3_347(volatile A&); 614 four sink_3_347(const volatile A&); 615 seven sink_3_347(volatile A&&); 616 617 int test3_347() 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_3_347(c_source()); // { dg-error "" } 624 sink_3_347(cv_source()); // { dg-error "" } 625 return 0; 626 } 627 628 three sink_3_356(volatile A&); 629 five sink_3_356( A&&); 630 six sink_3_356(const A&&); 631 632 int test3_356() 633 { 634 A a; 635 const A ca = a; // { dg-error "deleted" } 636 volatile A va; 637 const volatile A cva = a; // { dg-error "deleted" } 638 sink_3_356(ca); // { dg-error "" } 639 sink_3_356(cva); // { dg-error "" } 640 sink_3_356(v_source()); // { dg-error "" } 641 sink_3_356(cv_source()); // { dg-error "" } 642 return 0; 643 } 644 645 three sink_3_357(volatile A&); 646 five sink_3_357( A&&); 647 seven sink_3_357(volatile A&&); 648 649 int test3_357() 650 { 651 A a; 652 const A ca = a; // { dg-error "deleted" } 653 volatile A va; 654 const volatile A cva = a; // { dg-error "deleted" } 655 sink_3_357(ca); // { dg-error "" } 656 sink_3_357(cva); // { dg-error "" } 657 sink_3_357(c_source()); // { dg-error "" } 658 sink_3_357(cv_source()); // { dg-error "" } 659 return 0; 660 } 661 662 three sink_3_358(volatile A&); 663 five sink_3_358( A&&); 664 eight sink_3_358(const volatile A&&); 665 666 int test3_358() 667 { 668 A a; 669 const A ca = a; // { dg-error "deleted" } 670 volatile A va; 671 const volatile A cva = a; // { dg-error "deleted" } 672 sink_3_358(ca); // { dg-error "" } 673 sink_3_358(cva); // { dg-error "" } 674 return 0; 675 } 676 677 three sink_3_367(volatile A&); 678 six sink_3_367(const A&&); 679 seven sink_3_367(volatile A&&); 680 681 int test3_367() 682 { 683 A a; 684 const A ca = a; // { dg-error "deleted" } 685 volatile A va; 686 const volatile A cva = a; // { dg-error "deleted" } 687 sink_3_367(ca); // { dg-error "" } 688 sink_3_367(cva); // { dg-error "" } 689 sink_3_367(source()); // { dg-error "" } 690 sink_3_367(cv_source()); // { dg-error "" } 691 return 0; 692 } 693 694 three sink_3_368(volatile A&); 695 six sink_3_368(const A&&); 696 eight sink_3_368(const volatile A&&); 697 698 int test3_368() 699 { 700 A a; 701 const A ca = a; // { dg-error "deleted" } 702 volatile A va; 703 const volatile A cva = a; // { dg-error "deleted" } 704 sink_3_368(ca); // { dg-error "" } 705 sink_3_368(cva); // { dg-error "" } 706 return 0; 707 } 708 709 three sink_3_378(volatile A&); 710 seven sink_3_378(volatile A&&); 711 eight sink_3_378(const volatile A&&); 712 713 int test3_378() 714 { 715 A a; 716 const A ca = a; // { dg-error "deleted" } 717 volatile A va; 718 const volatile A cva = a; // { dg-error "deleted" } 719 sink_3_378(ca); // { dg-error "" } 720 sink_3_378(cva); // { dg-error "" } 721 return 0; 722 } 723 724 four sink_3_456(const volatile A&); 725 five sink_3_456( A&&); 726 six sink_3_456(const A&&); 727 728 int test3_456() 729 { 730 A a; 731 const A ca = a; // { dg-error "deleted" } 732 volatile A va; 733 const volatile A cva = a; // { dg-error "deleted" } 734 sink_3_456(v_source()); // { dg-error "" } 735 sink_3_456(cv_source()); // { dg-error "" } 736 return 0; 737 } 738 739 four sink_3_457(const volatile A&); 740 five sink_3_457( A&&); 741 seven sink_3_457(volatile A&&); 742 743 int test3_457() 744 { 745 A a; 746 const A ca = a; // { dg-error "deleted" } 747 volatile A va; 748 const volatile A cva = a; // { dg-error "deleted" } 749 sink_3_457(c_source()); // { dg-error "" } 750 sink_3_457(cv_source()); // { dg-error "" } 751 return 0; 752 } 753 754 four sink_3_467(const volatile A&); 755 six sink_3_467(const A&&); 756 seven sink_3_467(volatile A&&); 757 758 int test3_467() 759 { 760 A a; 761 const A ca = a; // { dg-error "deleted" } 762 volatile A va; 763 const volatile A cva = a; // { dg-error "deleted" } 764 sink_3_467(source()); // { dg-error "" } 765 sink_3_467(cv_source()); // { dg-error "" } 766 return 0; 767 } 768 769 five sink_3_567( A&&); 770 six sink_3_567(const A&&); 771 seven sink_3_567(volatile A&&); 772 773 int test3_567() 774 { 775 A a; 776 const A ca = a; // { dg-error "deleted" } 777 volatile A va; 778 const volatile A cva = a; // { dg-error "deleted" } 779 sink_3_567(a); // { dg-error "" } 780 sink_3_567(ca); // { dg-error "" } 781 sink_3_567(va); // { dg-error "" } 782 sink_3_567(cva); // { dg-error "" } 783 sink_3_567(cv_source()); // { dg-error "" } 784 return 0; 785 } 786 787 five sink_3_568( A&&); 788 six sink_3_568(const A&&); 789 eight sink_3_568(const volatile A&&); 790 791 int test3_568() 792 { 793 A a; 794 const A ca = a; // { dg-error "deleted" } 795 volatile A va; 796 const volatile A cva = a; // { dg-error "deleted" } 797 sink_3_568(a); // { dg-error "" } 798 sink_3_568(ca); // { dg-error "" } 799 sink_3_568(va); // { dg-error "" } 800 sink_3_568(cva); // { dg-error "" } 801 return 0; 802 } 803 804 five sink_3_578( A&&); 805 seven sink_3_578(volatile A&&); 806 eight sink_3_578(const volatile A&&); 807 808 int test3_578() 809 { 810 A a; 811 const A ca = a; // { dg-error "deleted" } 812 volatile A va; 813 const volatile A cva = a; // { dg-error "deleted" } 814 sink_3_578(a); // { dg-error "" } 815 sink_3_578(ca); // { dg-error "" } 816 sink_3_578(va); // { dg-error "" } 817 sink_3_578(cva); // { dg-error "" } 818 return 0; 819 } 820 821 six sink_3_678(const A&&); 822 seven sink_3_678(volatile A&&); 823 eight sink_3_678(const volatile A&&); 824 825 int test3_678() 826 { 827 A a; 828 const A ca = a; // { dg-error "deleted" } 829 volatile A va; 830 const volatile A cva = a; // { dg-error "deleted" } 831 sink_3_678(a); // { dg-error "" } 832 sink_3_678(ca); // { dg-error "" } 833 sink_3_678(va); // { dg-error "" } 834 sink_3_678(cva); // { dg-error "" } 835 sink_3_678(source()); // { dg-error "" } 836 return 0; 837 } 838 839 int main() 840 { 841 return test3_123() + test3_125() + test3_126() + test3_127() + 842 test3_135() + test3_136() + test3_137() + test3_156() + 843 test3_157() + test3_167() + test3_234() + test3_235() + 844 test3_236() + test3_237() + test3_238() + test3_256() + 845 test3_257() + test3_267() + test3_356() + test3_357() + 846 test3_367() + test3_467() + test3_567() + test3_678(); 847 } 848