1 // { dg-options "--std=c++0x" } 2 // { dg-do link } 3 // Generated by overload.py 4 5 template<typename _Tp> 6 inline _Tp&& movel(_Tp & __t)7movel(_Tp& __t) 8 { return static_cast<_Tp&&>(__t); } 9 10 struct S{}; 11 12 S l; // lvalue (l) 13 S const cl = l; // const lvalue (cl) r()14S r() { return l; } // rvalue (r) cr()15S const cr() { return l; } // const rvalue (cr) 16 S & nl = l; // named lvalue reference (nl) 17 S const & ncl = l; // named const lvalue reference (ncl) 18 S && nr = movel(l); // named rvalue reference (nr) 19 S const && ncr = movel(l); // named const rvalue reference (ncr) ul()20S & ul() { return l; } // unnamed lvalue reference (ul) ucl()21S const & ucl() { return l; } // unnamed const lvalue reference (ucl) ur()22S && ur() { return movel(l); } // unnamed rvalue reference (ur) ucr()23S const && ucr() { return movel(l); } // unnamed const rvalue reference (ucr) 24 l0001(const S &&)25void l0001(const S&&) {} // { dg-message "" } 26 l0010(S &&)27void l0010(S&&) {} // { dg-message "" } 28 l0011(S &&)29void l0011(S&&) {} // { dg-message "" } 30 void l0011(const S&&); 31 l0100(const S &)32void l0100(const S&) {} 33 l0101(const S &)34void l0101(const S&) {} 35 void l0101(const S&&); 36 l0110(const S &)37void l0110(const S&) {} 38 void l0110(S&&); 39 l0111(const S &)40void l0111(const S&) {} 41 void l0111(S&&); 42 void l0111(const S&&); 43 l1000(S &)44void l1000(S&) {} 45 l1001(S &)46void l1001(S&) {} 47 void l1001(const S&&); 48 l1010(S &)49void l1010(S&) {} 50 void l1010(S&&); 51 l1011(S &)52void l1011(S&) {} 53 void l1011(S&&); 54 void l1011(const S&&); 55 l1100(S &)56void l1100(S&) {} 57 void l1100(const S&); 58 l1101(S &)59void l1101(S&) {} 60 void l1101(const S&); 61 void l1101(const S&&); 62 l1110(S &)63void l1110(S&) {} 64 void l1110(const S&); 65 void l1110(S&&); 66 l1111(S &)67void l1111(S&) {} 68 void l1111(const S&); 69 void l1111(S&&); 70 void l1111(const S&&); 71 cl0001(const S &&)72void cl0001(const S&&) {} // { dg-message "" } 73 74 void cl0011(S&&); cl0011(const S &&)75void cl0011(const S&&) {} // { dg-message "" } 76 cl0100(const S &)77void cl0100(const S&) {} 78 cl0101(const S &)79void cl0101(const S&) {} 80 void cl0101(const S&&); 81 cl0110(const S &)82void cl0110(const S&) {} 83 void cl0110(S&&); 84 cl0111(const S &)85void cl0111(const S&) {} 86 void cl0111(S&&); 87 void cl0111(const S&&); 88 89 void cl1001(S&); cl1001(const S &&)90void cl1001(const S&&) {} // { dg-message "" } 91 92 void cl1011(S&); 93 void cl1011(S&&); cl1011(const S &&)94void cl1011(const S&&) {} // { dg-message "" } 95 96 void cl1100(S&); cl1100(const S &)97void cl1100(const S&) {} 98 99 void cl1101(S&); cl1101(const S &)100void cl1101(const S&) {} 101 void cl1101(const S&&); 102 103 void cl1110(S&); cl1110(const S &)104void cl1110(const S&) {} 105 void cl1110(S&&); 106 107 void cl1111(S&); cl1111(const S &)108void cl1111(const S&) {} 109 void cl1111(S&&); 110 void cl1111(const S&&); 111 r0001(const S &&)112void r0001(const S&&) {} 113 r0010(S &&)114void r0010(S&&) {} 115 r0011(S &&)116void r0011(S&&) {} 117 void r0011(const S&&); 118 r0100(const S &)119void r0100(const S&) {} 120 121 void r0101(const S&); r0101(const S &&)122void r0101(const S&&) {} 123 124 void r0110(const S&); r0110(S &&)125void r0110(S&&) {} 126 127 void r0111(const S&); r0111(S &&)128void r0111(S&&) {} 129 void r0111(const S&&); 130 131 void r1001(S&); r1001(const S &&)132void r1001(const S&&) {} 133 134 void r1010(S&); r1010(S &&)135void r1010(S&&) {} 136 137 void r1011(S&); r1011(S &&)138void r1011(S&&) {} 139 void r1011(const S&&); 140 141 void r1100(S&); r1100(const S &)142void r1100(const S&) {} 143 144 void r1101(S&); 145 void r1101(const S&); r1101(const S &&)146void r1101(const S&&) {} 147 148 void r1110(S&); 149 void r1110(const S&); r1110(S &&)150void r1110(S&&) {} 151 152 void r1111(S&); 153 void r1111(const S&); r1111(S &&)154void r1111(S&&) {} 155 void r1111(const S&&); 156 cr0001(const S &&)157void cr0001(const S&&) {} 158 159 void cr0011(S&&); cr0011(const S &&)160void cr0011(const S&&) {} 161 cr0100(const S &)162void cr0100(const S&) {} 163 164 void cr0101(const S&); cr0101(const S &&)165void cr0101(const S&&) {} 166 cr0110(const S &)167void cr0110(const S&) {} 168 void cr0110(S&&); 169 170 void cr0111(const S&); 171 void cr0111(S&&); cr0111(const S &&)172void cr0111(const S&&) {} 173 174 void cr1001(S&); cr1001(const S &&)175void cr1001(const S&&) {} 176 177 void cr1011(S&); 178 void cr1011(S&&); cr1011(const S &&)179void cr1011(const S&&) {} 180 181 void cr1100(S&); cr1100(const S &)182void cr1100(const S&) {} 183 184 void cr1101(S&); 185 void cr1101(const S&); cr1101(const S &&)186void cr1101(const S&&) {} 187 188 void cr1110(S&); cr1110(const S &)189void cr1110(const S&) {} 190 void cr1110(S&&); 191 192 void cr1111(S&); 193 void cr1111(const S&); 194 void cr1111(S&&); cr1111(const S &&)195void cr1111(const S&&) {} 196 nl0001(const S &&)197void nl0001(const S&&) {} // { dg-message "" } 198 nl0010(S &&)199void nl0010(S&&) {} // { dg-message "" } 200 nl0011(S &&)201void nl0011(S&&) {} // { dg-message "" } 202 void nl0011(const S&&); 203 nl0100(const S &)204void nl0100(const S&) {} 205 nl0101(const S &)206void nl0101(const S&) {} 207 void nl0101(const S&&); 208 nl0110(const S &)209void nl0110(const S&) {} 210 void nl0110(S&&); 211 nl0111(const S &)212void nl0111(const S&) {} 213 void nl0111(S&&); 214 void nl0111(const S&&); 215 nl1000(S &)216void nl1000(S&) {} 217 nl1001(S &)218void nl1001(S&) {} 219 void nl1001(const S&&); 220 nl1010(S &)221void nl1010(S&) {} 222 void nl1010(S&&); 223 nl1011(S &)224void nl1011(S&) {} 225 void nl1011(S&&); 226 void nl1011(const S&&); 227 nl1100(S &)228void nl1100(S&) {} 229 void nl1100(const S&); 230 nl1101(S &)231void nl1101(S&) {} 232 void nl1101(const S&); 233 void nl1101(const S&&); 234 nl1110(S &)235void nl1110(S&) {} 236 void nl1110(const S&); 237 void nl1110(S&&); 238 nl1111(S &)239void nl1111(S&) {} 240 void nl1111(const S&); 241 void nl1111(S&&); 242 void nl1111(const S&&); 243 ncl0001(const S &&)244void ncl0001(const S&&) {} // { dg-message "" } 245 246 void ncl0011(S&&); ncl0011(const S &&)247void ncl0011(const S&&) {} // { dg-message "" } 248 ncl0100(const S &)249void ncl0100(const S&) {} 250 ncl0101(const S &)251void ncl0101(const S&) {} 252 void ncl0101(const S&&); 253 ncl0110(const S &)254void ncl0110(const S&) {} 255 void ncl0110(S&&); 256 ncl0111(const S &)257void ncl0111(const S&) {} 258 void ncl0111(S&&); 259 void ncl0111(const S&&); 260 261 void ncl1001(S&); ncl1001(const S &&)262void ncl1001(const S&&) {} // { dg-message "" } 263 264 void ncl1011(S&); 265 void ncl1011(S&&); ncl1011(const S &&)266void ncl1011(const S&&) {} // { dg-message "" } 267 268 void ncl1100(S&); ncl1100(const S &)269void ncl1100(const S&) {} 270 271 void ncl1101(S&); ncl1101(const S &)272void ncl1101(const S&) {} 273 void ncl1101(const S&&); 274 275 void ncl1110(S&); ncl1110(const S &)276void ncl1110(const S&) {} 277 void ncl1110(S&&); 278 279 void ncl1111(S&); ncl1111(const S &)280void ncl1111(const S&) {} 281 void ncl1111(S&&); 282 void ncl1111(const S&&); 283 nr0001(const S &&)284void nr0001(const S&&) {} // { dg-message "" } 285 nr0010(S &&)286void nr0010(S&&) {} // { dg-message "" } 287 nr0011(S &&)288void nr0011(S&&) {} // { dg-message "" } 289 void nr0011(const S&&); 290 nr0100(const S &)291void nr0100(const S&) {} 292 nr0101(const S &)293void nr0101(const S&) {} 294 void nr0101(const S&&); 295 nr0110(const S &)296void nr0110(const S&) {} 297 void nr0110(S&&); 298 nr0111(const S &)299void nr0111(const S&) {} 300 void nr0111(S&&); 301 void nr0111(const S&&); 302 nr1000(S &)303void nr1000(S&) {} 304 nr1001(S &)305void nr1001(S&) {} 306 void nr1001(const S&&); 307 nr1010(S &)308void nr1010(S&) {} 309 void nr1010(S&&); 310 nr1011(S &)311void nr1011(S&) {} 312 void nr1011(S&&); 313 void nr1011(const S&&); 314 nr1100(S &)315void nr1100(S&) {} 316 void nr1100(const S&); 317 nr1101(S &)318void nr1101(S&) {} 319 void nr1101(const S&); 320 void nr1101(const S&&); 321 nr1110(S &)322void nr1110(S&) {} 323 void nr1110(const S&); 324 void nr1110(S&&); 325 nr1111(S &)326void nr1111(S&) {} 327 void nr1111(const S&); 328 void nr1111(S&&); 329 void nr1111(const S&&); 330 ncr0001(const S &&)331void ncr0001(const S&&) {} // { dg-message "" } 332 333 void ncr0011(S&&); ncr0011(const S &&)334void ncr0011(const S&&) {} // { dg-message "" } 335 ncr0100(const S &)336void ncr0100(const S&) {} 337 ncr0101(const S &)338void ncr0101(const S&) {} 339 void ncr0101(const S&&); 340 ncr0110(const S &)341void ncr0110(const S&) {} 342 void ncr0110(S&&); 343 ncr0111(const S &)344void ncr0111(const S&) {} 345 void ncr0111(S&&); 346 void ncr0111(const S&&); 347 348 void ncr1001(S&); ncr1001(const S &&)349void ncr1001(const S&&) {} // { dg-message "" } 350 351 void ncr1011(S&); 352 void ncr1011(S&&); ncr1011(const S &&)353void ncr1011(const S&&) {} // { dg-message "" } 354 355 void ncr1100(S&); ncr1100(const S &)356void ncr1100(const S&) {} 357 358 void ncr1101(S&); ncr1101(const S &)359void ncr1101(const S&) {} 360 void ncr1101(const S&&); 361 362 void ncr1110(S&); ncr1110(const S &)363void ncr1110(const S&) {} 364 void ncr1110(S&&); 365 366 void ncr1111(S&); ncr1111(const S &)367void ncr1111(const S&) {} 368 void ncr1111(S&&); 369 void ncr1111(const S&&); 370 ul0001(const S &&)371void ul0001(const S&&) {} // { dg-message "" } 372 ul0010(S &&)373void ul0010(S&&) {} // { dg-message "" } 374 ul0011(S &&)375void ul0011(S&&) {} // { dg-message "" } 376 void ul0011(const S&&); 377 ul0100(const S &)378void ul0100(const S&) {} 379 ul0101(const S &)380void ul0101(const S&) {} 381 void ul0101(const S&&); 382 ul0110(const S &)383void ul0110(const S&) {} 384 void ul0110(S&&); 385 ul0111(const S &)386void ul0111(const S&) {} 387 void ul0111(S&&); 388 void ul0111(const S&&); 389 ul1000(S &)390void ul1000(S&) {} 391 ul1001(S &)392void ul1001(S&) {} 393 void ul1001(const S&&); 394 ul1010(S &)395void ul1010(S&) {} 396 void ul1010(S&&); 397 ul1011(S &)398void ul1011(S&) {} 399 void ul1011(S&&); 400 void ul1011(const S&&); 401 ul1100(S &)402void ul1100(S&) {} 403 void ul1100(const S&); 404 ul1101(S &)405void ul1101(S&) {} 406 void ul1101(const S&); 407 void ul1101(const S&&); 408 ul1110(S &)409void ul1110(S&) {} 410 void ul1110(const S&); 411 void ul1110(S&&); 412 ul1111(S &)413void ul1111(S&) {} 414 void ul1111(const S&); 415 void ul1111(S&&); 416 void ul1111(const S&&); 417 ucl0001(const S &&)418void ucl0001(const S&&) {} // { dg-message "" } 419 420 void ucl0011(S&&); ucl0011(const S &&)421void ucl0011(const S&&) {} // { dg-message "" } 422 ucl0100(const S &)423void ucl0100(const S&) {} 424 ucl0101(const S &)425void ucl0101(const S&) {} 426 void ucl0101(const S&&); 427 ucl0110(const S &)428void ucl0110(const S&) {} 429 void ucl0110(S&&); 430 ucl0111(const S &)431void ucl0111(const S&) {} 432 void ucl0111(S&&); 433 void ucl0111(const S&&); 434 435 void ucl1001(S&); ucl1001(const S &&)436void ucl1001(const S&&) {} // { dg-message "" } 437 438 void ucl1011(S&); 439 void ucl1011(S&&); ucl1011(const S &&)440void ucl1011(const S&&) {} // { dg-message "" } 441 442 void ucl1100(S&); ucl1100(const S &)443void ucl1100(const S&) {} 444 445 void ucl1101(S&); ucl1101(const S &)446void ucl1101(const S&) {} 447 void ucl1101(const S&&); 448 449 void ucl1110(S&); ucl1110(const S &)450void ucl1110(const S&) {} 451 void ucl1110(S&&); 452 453 void ucl1111(S&); ucl1111(const S &)454void ucl1111(const S&) {} 455 void ucl1111(S&&); 456 void ucl1111(const S&&); 457 ur0001(const S &&)458void ur0001(const S&&) {} 459 ur0010(S &&)460void ur0010(S&&) {} 461 ur0011(S &&)462void ur0011(S&&) {} 463 void ur0011(const S&&); 464 ur0100(const S &)465void ur0100(const S&) {} 466 467 void ur0101(const S&); ur0101(const S &&)468void ur0101(const S&&) {} 469 470 void ur0110(const S&); ur0110(S &&)471void ur0110(S&&) {} 472 473 void ur0111(const S&); ur0111(S &&)474void ur0111(S&&) {} 475 void ur0111(const S&&); 476 477 void ur1001(S&); ur1001(const S &&)478void ur1001(const S&&) {} 479 480 void ur1010(S&); ur1010(S &&)481void ur1010(S&&) {} 482 483 void ur1011(S&); ur1011(S &&)484void ur1011(S&&) {} 485 void ur1011(const S&&); 486 487 void ur1100(S&); ur1100(const S &)488void ur1100(const S&) {} 489 490 void ur1101(S&); 491 void ur1101(const S&); ur1101(const S &&)492void ur1101(const S&&) {} 493 494 void ur1110(S&); 495 void ur1110(const S&); ur1110(S &&)496void ur1110(S&&) {} 497 498 void ur1111(S&); 499 void ur1111(const S&); ur1111(S &&)500void ur1111(S&&) {} 501 void ur1111(const S&&); 502 ucr0001(const S &&)503void ucr0001(const S&&) {} 504 505 void ucr0011(S&&); ucr0011(const S &&)506void ucr0011(const S&&) {} 507 ucr0100(const S &)508void ucr0100(const S&) {} 509 510 void ucr0101(const S&); ucr0101(const S &&)511void ucr0101(const S&&) {} 512 ucr0110(const S &)513void ucr0110(const S&) {} 514 void ucr0110(S&&); 515 516 void ucr0111(const S&); 517 void ucr0111(S&&); ucr0111(const S &&)518void ucr0111(const S&&) {} 519 520 void ucr1001(S&); ucr1001(const S &&)521void ucr1001(const S&&) {} 522 523 void ucr1011(S&); 524 void ucr1011(S&&); ucr1011(const S &&)525void ucr1011(const S&&) {} 526 527 void ucr1100(S&); ucr1100(const S &)528void ucr1100(const S&) {} 529 530 void ucr1101(S&); 531 void ucr1101(const S&); ucr1101(const S &&)532void ucr1101(const S&&) {} 533 534 void ucr1110(S&); ucr1110(const S &)535void ucr1110(const S&) {} 536 void ucr1110(S&&); 537 538 void ucr1111(S&); 539 void ucr1111(const S&); 540 void ucr1111(S&&); ucr1111(const S &&)541void ucr1111(const S&&) {} 542 543 main()544int main() 545 { 546 l0001(l); // { dg-error "lvalue" } 547 l0010(l); // { dg-error "lvalue" } 548 l0011(l); // { dg-error "lvalue" } 549 l0100(l); 550 l0101(l); 551 l0110(l); 552 l0111(l); 553 l1000(l); 554 l1001(l); 555 l1010(l); 556 l1011(l); 557 l1100(l); 558 l1101(l); 559 l1110(l); 560 l1111(l); 561 cl0001(cl); // { dg-error "lvalue" } 562 cl0011(cl); // { dg-error "lvalue" } 563 cl0100(cl); 564 cl0101(cl); 565 cl0110(cl); 566 cl0111(cl); 567 cl1001(cl); // { dg-error "lvalue" } 568 cl1011(cl); // { dg-error "lvalue" } 569 cl1100(cl); 570 cl1101(cl); 571 cl1110(cl); 572 cl1111(cl); 573 r0001(r()); 574 r0010(r()); 575 r0011(r()); 576 r0100(r()); 577 r0101(r()); 578 r0110(r()); 579 r0111(r()); 580 r1001(r()); 581 r1010(r()); 582 r1011(r()); 583 r1100(r()); 584 r1101(r()); 585 r1110(r()); 586 r1111(r()); 587 cr0001(cr()); 588 cr0011(cr()); 589 cr0100(cr()); 590 cr0101(cr()); 591 cr0110(cr()); 592 cr0111(cr()); 593 cr1001(cr()); 594 cr1011(cr()); 595 cr1100(cr()); 596 cr1101(cr()); 597 cr1110(cr()); 598 cr1111(cr()); 599 nl0001(nl); // { dg-error "lvalue" } 600 nl0010(nl); // { dg-error "lvalue" } 601 nl0011(nl); // { dg-error "lvalue" } 602 nl0100(nl); 603 nl0101(nl); 604 nl0110(nl); 605 nl0111(nl); 606 nl1000(nl); 607 nl1001(nl); 608 nl1010(nl); 609 nl1011(nl); 610 nl1100(nl); 611 nl1101(nl); 612 nl1110(nl); 613 nl1111(nl); 614 ncl0001(ncl); // { dg-error "lvalue" } 615 ncl0011(ncl); // { dg-error "lvalue" } 616 ncl0100(ncl); 617 ncl0101(ncl); 618 ncl0110(ncl); 619 ncl0111(ncl); 620 ncl1001(ncl); // { dg-error "lvalue" } 621 ncl1011(ncl); // { dg-error "lvalue" } 622 ncl1100(ncl); 623 ncl1101(ncl); 624 ncl1110(ncl); 625 ncl1111(ncl); 626 nr0001(nr); // { dg-error "lvalue" } 627 nr0010(nr); // { dg-error "lvalue" } 628 nr0011(nr); // { dg-error "lvalue" } 629 nr0100(nr); 630 nr0101(nr); 631 nr0110(nr); 632 nr0111(nr); 633 nr1000(nr); 634 nr1001(nr); 635 nr1010(nr); 636 nr1011(nr); 637 nr1100(nr); 638 nr1101(nr); 639 nr1110(nr); 640 nr1111(nr); 641 ncr0001(ncr); // { dg-error "lvalue" } 642 ncr0011(ncr); // { dg-error "lvalue" } 643 ncr0100(ncr); 644 ncr0101(ncr); 645 ncr0110(ncr); 646 ncr0111(ncr); 647 ncr1001(ncr); // { dg-error "lvalue" } 648 ncr1011(ncr); // { dg-error "lvalue" } 649 ncr1100(ncr); 650 ncr1101(ncr); 651 ncr1110(ncr); 652 ncr1111(ncr); 653 ul0001(ul()); // { dg-error "lvalue" } 654 ul0010(ul()); // { dg-error "lvalue" } 655 ul0011(ul()); // { dg-error "lvalue" } 656 ul0100(ul()); 657 ul0101(ul()); 658 ul0110(ul()); 659 ul0111(ul()); 660 ul1000(ul()); 661 ul1001(ul()); 662 ul1010(ul()); 663 ul1011(ul()); 664 ul1100(ul()); 665 ul1101(ul()); 666 ul1110(ul()); 667 ul1111(ul()); 668 ucl0001(ucl()); // { dg-error "lvalue" } 669 ucl0011(ucl()); // { dg-error "lvalue" } 670 ucl0100(ucl()); 671 ucl0101(ucl()); 672 ucl0110(ucl()); 673 ucl0111(ucl()); 674 ucl1001(ucl()); // { dg-error "lvalue" } 675 ucl1011(ucl()); // { dg-error "lvalue" } 676 ucl1100(ucl()); 677 ucl1101(ucl()); 678 ucl1110(ucl()); 679 ucl1111(ucl()); 680 ur0001(ur()); 681 ur0010(ur()); 682 ur0011(ur()); 683 ur0100(ur()); 684 ur0101(ur()); 685 ur0110(ur()); 686 ur0111(ur()); 687 ur1001(ur()); 688 ur1010(ur()); 689 ur1011(ur()); 690 ur1100(ur()); 691 ur1101(ur()); 692 ur1110(ur()); 693 ur1111(ur()); 694 ucr0001(ucr()); 695 ucr0011(ucr()); 696 ucr0100(ucr()); 697 ucr0101(ucr()); 698 ucr0110(ucr()); 699 ucr0111(ucr()); 700 ucr1001(ucr()); 701 ucr1011(ucr()); 702 ucr1100(ucr()); 703 ucr1101(ucr()); 704 ucr1110(ucr()); 705 ucr1111(ucr()); 706 707 return 0; 708 } 709