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