| // { dg-do link { target c++11 } } |
| // { dg-options "" } |
| // Generated by overload.py |
| |
| template<typename _Tp> |
| inline _Tp&& |
| movel(_Tp& __t) |
| { return static_cast<_Tp&&>(__t); } |
| |
| struct S{}; |
| |
| S l; // lvalue (l) |
| S const cl = l; // const lvalue (cl) |
| S r() { return l; } // rvalue (r) |
| S const cr() { return l; } // const rvalue (cr) |
| S & nl = l; // named lvalue reference (nl) |
| S const & ncl = l; // named const lvalue reference (ncl) |
| S && nr = movel(l); // named rvalue reference (nr) |
| S const && ncr = movel(l); // named const rvalue reference (ncr) |
| S & ul() { return l; } // unnamed lvalue reference (ul) |
| S const & ucl() { return l; } // unnamed const lvalue reference (ucl) |
| S && ur() { return movel(l); } // unnamed rvalue reference (ur) |
| S const && ucr() { return movel(l); } // unnamed const rvalue reference (ucr) |
| |
| void l0001(const S&&) {} // { dg-message "" } |
| |
| void l0010(S&&) {} // { dg-message "" } |
| |
| void l0011(S&&) {} // { dg-message "" } |
| void l0011(const S&&); |
| |
| void l0100(const S&) {} |
| |
| void l0101(const S&) {} |
| void l0101(const S&&); |
| |
| void l0110(const S&) {} |
| void l0110(S&&); |
| |
| void l0111(const S&) {} |
| void l0111(S&&); |
| void l0111(const S&&); |
| |
| void l1000(S&) {} |
| |
| void l1001(S&) {} |
| void l1001(const S&&); |
| |
| void l1010(S&) {} |
| void l1010(S&&); |
| |
| void l1011(S&) {} |
| void l1011(S&&); |
| void l1011(const S&&); |
| |
| void l1100(S&) {} |
| void l1100(const S&); |
| |
| void l1101(S&) {} |
| void l1101(const S&); |
| void l1101(const S&&); |
| |
| void l1110(S&) {} |
| void l1110(const S&); |
| void l1110(S&&); |
| |
| void l1111(S&) {} |
| void l1111(const S&); |
| void l1111(S&&); |
| void l1111(const S&&); |
| |
| void cl0001(const S&&) {} // { dg-message "" } |
| |
| void cl0011(S&&); |
| void cl0011(const S&&) {} // { dg-message "" } |
| |
| void cl0100(const S&) {} |
| |
| void cl0101(const S&) {} |
| void cl0101(const S&&); |
| |
| void cl0110(const S&) {} |
| void cl0110(S&&); |
| |
| void cl0111(const S&) {} |
| void cl0111(S&&); |
| void cl0111(const S&&); |
| |
| void cl1001(S&); |
| void cl1001(const S&&) {} // { dg-message "" } |
| |
| void cl1011(S&); |
| void cl1011(S&&); |
| void cl1011(const S&&) {} // { dg-message "" } |
| |
| void cl1100(S&); |
| void cl1100(const S&) {} |
| |
| void cl1101(S&); |
| void cl1101(const S&) {} |
| void cl1101(const S&&); |
| |
| void cl1110(S&); |
| void cl1110(const S&) {} |
| void cl1110(S&&); |
| |
| void cl1111(S&); |
| void cl1111(const S&) {} |
| void cl1111(S&&); |
| void cl1111(const S&&); |
| |
| void r0001(const S&&) {} |
| |
| void r0010(S&&) {} |
| |
| void r0011(S&&) {} |
| void r0011(const S&&); |
| |
| void r0100(const S&) {} |
| |
| void r0101(const S&); |
| void r0101(const S&&) {} |
| |
| void r0110(const S&); |
| void r0110(S&&) {} |
| |
| void r0111(const S&); |
| void r0111(S&&) {} |
| void r0111(const S&&); |
| |
| void r1001(S&); |
| void r1001(const S&&) {} |
| |
| void r1010(S&); |
| void r1010(S&&) {} |
| |
| void r1011(S&); |
| void r1011(S&&) {} |
| void r1011(const S&&); |
| |
| void r1100(S&); |
| void r1100(const S&) {} |
| |
| void r1101(S&); |
| void r1101(const S&); |
| void r1101(const S&&) {} |
| |
| void r1110(S&); |
| void r1110(const S&); |
| void r1110(S&&) {} |
| |
| void r1111(S&); |
| void r1111(const S&); |
| void r1111(S&&) {} |
| void r1111(const S&&); |
| |
| void cr0001(const S&&) {} |
| |
| void cr0011(S&&); |
| void cr0011(const S&&) {} |
| |
| void cr0100(const S&) {} |
| |
| void cr0101(const S&); |
| void cr0101(const S&&) {} |
| |
| void cr0110(const S&) {} |
| void cr0110(S&&); |
| |
| void cr0111(const S&); |
| void cr0111(S&&); |
| void cr0111(const S&&) {} |
| |
| void cr1001(S&); |
| void cr1001(const S&&) {} |
| |
| void cr1011(S&); |
| void cr1011(S&&); |
| void cr1011(const S&&) {} |
| |
| void cr1100(S&); |
| void cr1100(const S&) {} |
| |
| void cr1101(S&); |
| void cr1101(const S&); |
| void cr1101(const S&&) {} |
| |
| void cr1110(S&); |
| void cr1110(const S&) {} |
| void cr1110(S&&); |
| |
| void cr1111(S&); |
| void cr1111(const S&); |
| void cr1111(S&&); |
| void cr1111(const S&&) {} |
| |
| void nl0001(const S&&) {} // { dg-message "" } |
| |
| void nl0010(S&&) {} // { dg-message "" } |
| |
| void nl0011(S&&) {} // { dg-message "" } |
| void nl0011(const S&&); |
| |
| void nl0100(const S&) {} |
| |
| void nl0101(const S&) {} |
| void nl0101(const S&&); |
| |
| void nl0110(const S&) {} |
| void nl0110(S&&); |
| |
| void nl0111(const S&) {} |
| void nl0111(S&&); |
| void nl0111(const S&&); |
| |
| void nl1000(S&) {} |
| |
| void nl1001(S&) {} |
| void nl1001(const S&&); |
| |
| void nl1010(S&) {} |
| void nl1010(S&&); |
| |
| void nl1011(S&) {} |
| void nl1011(S&&); |
| void nl1011(const S&&); |
| |
| void nl1100(S&) {} |
| void nl1100(const S&); |
| |
| void nl1101(S&) {} |
| void nl1101(const S&); |
| void nl1101(const S&&); |
| |
| void nl1110(S&) {} |
| void nl1110(const S&); |
| void nl1110(S&&); |
| |
| void nl1111(S&) {} |
| void nl1111(const S&); |
| void nl1111(S&&); |
| void nl1111(const S&&); |
| |
| void ncl0001(const S&&) {} // { dg-message "" } |
| |
| void ncl0011(S&&); |
| void ncl0011(const S&&) {} // { dg-message "" } |
| |
| void ncl0100(const S&) {} |
| |
| void ncl0101(const S&) {} |
| void ncl0101(const S&&); |
| |
| void ncl0110(const S&) {} |
| void ncl0110(S&&); |
| |
| void ncl0111(const S&) {} |
| void ncl0111(S&&); |
| void ncl0111(const S&&); |
| |
| void ncl1001(S&); |
| void ncl1001(const S&&) {} // { dg-message "" } |
| |
| void ncl1011(S&); |
| void ncl1011(S&&); |
| void ncl1011(const S&&) {} // { dg-message "" } |
| |
| void ncl1100(S&); |
| void ncl1100(const S&) {} |
| |
| void ncl1101(S&); |
| void ncl1101(const S&) {} |
| void ncl1101(const S&&); |
| |
| void ncl1110(S&); |
| void ncl1110(const S&) {} |
| void ncl1110(S&&); |
| |
| void ncl1111(S&); |
| void ncl1111(const S&) {} |
| void ncl1111(S&&); |
| void ncl1111(const S&&); |
| |
| void nr0001(const S&&) {} // { dg-message "" } |
| |
| void nr0010(S&&) {} // { dg-message "" } |
| |
| void nr0011(S&&) {} // { dg-message "" } |
| void nr0011(const S&&); |
| |
| void nr0100(const S&) {} |
| |
| void nr0101(const S&) {} |
| void nr0101(const S&&); |
| |
| void nr0110(const S&) {} |
| void nr0110(S&&); |
| |
| void nr0111(const S&) {} |
| void nr0111(S&&); |
| void nr0111(const S&&); |
| |
| void nr1000(S&) {} |
| |
| void nr1001(S&) {} |
| void nr1001(const S&&); |
| |
| void nr1010(S&) {} |
| void nr1010(S&&); |
| |
| void nr1011(S&) {} |
| void nr1011(S&&); |
| void nr1011(const S&&); |
| |
| void nr1100(S&) {} |
| void nr1100(const S&); |
| |
| void nr1101(S&) {} |
| void nr1101(const S&); |
| void nr1101(const S&&); |
| |
| void nr1110(S&) {} |
| void nr1110(const S&); |
| void nr1110(S&&); |
| |
| void nr1111(S&) {} |
| void nr1111(const S&); |
| void nr1111(S&&); |
| void nr1111(const S&&); |
| |
| void ncr0001(const S&&) {} // { dg-message "" } |
| |
| void ncr0011(S&&); |
| void ncr0011(const S&&) {} // { dg-message "" } |
| |
| void ncr0100(const S&) {} |
| |
| void ncr0101(const S&) {} |
| void ncr0101(const S&&); |
| |
| void ncr0110(const S&) {} |
| void ncr0110(S&&); |
| |
| void ncr0111(const S&) {} |
| void ncr0111(S&&); |
| void ncr0111(const S&&); |
| |
| void ncr1001(S&); |
| void ncr1001(const S&&) {} // { dg-message "" } |
| |
| void ncr1011(S&); |
| void ncr1011(S&&); |
| void ncr1011(const S&&) {} // { dg-message "" } |
| |
| void ncr1100(S&); |
| void ncr1100(const S&) {} |
| |
| void ncr1101(S&); |
| void ncr1101(const S&) {} |
| void ncr1101(const S&&); |
| |
| void ncr1110(S&); |
| void ncr1110(const S&) {} |
| void ncr1110(S&&); |
| |
| void ncr1111(S&); |
| void ncr1111(const S&) {} |
| void ncr1111(S&&); |
| void ncr1111(const S&&); |
| |
| void ul0001(const S&&) {} // { dg-message "" } |
| |
| void ul0010(S&&) {} // { dg-message "" } |
| |
| void ul0011(S&&) {} // { dg-message "" } |
| void ul0011(const S&&); |
| |
| void ul0100(const S&) {} |
| |
| void ul0101(const S&) {} |
| void ul0101(const S&&); |
| |
| void ul0110(const S&) {} |
| void ul0110(S&&); |
| |
| void ul0111(const S&) {} |
| void ul0111(S&&); |
| void ul0111(const S&&); |
| |
| void ul1000(S&) {} |
| |
| void ul1001(S&) {} |
| void ul1001(const S&&); |
| |
| void ul1010(S&) {} |
| void ul1010(S&&); |
| |
| void ul1011(S&) {} |
| void ul1011(S&&); |
| void ul1011(const S&&); |
| |
| void ul1100(S&) {} |
| void ul1100(const S&); |
| |
| void ul1101(S&) {} |
| void ul1101(const S&); |
| void ul1101(const S&&); |
| |
| void ul1110(S&) {} |
| void ul1110(const S&); |
| void ul1110(S&&); |
| |
| void ul1111(S&) {} |
| void ul1111(const S&); |
| void ul1111(S&&); |
| void ul1111(const S&&); |
| |
| void ucl0001(const S&&) {} // { dg-message "" } |
| |
| void ucl0011(S&&); |
| void ucl0011(const S&&) {} // { dg-message "" } |
| |
| void ucl0100(const S&) {} |
| |
| void ucl0101(const S&) {} |
| void ucl0101(const S&&); |
| |
| void ucl0110(const S&) {} |
| void ucl0110(S&&); |
| |
| void ucl0111(const S&) {} |
| void ucl0111(S&&); |
| void ucl0111(const S&&); |
| |
| void ucl1001(S&); |
| void ucl1001(const S&&) {} // { dg-message "" } |
| |
| void ucl1011(S&); |
| void ucl1011(S&&); |
| void ucl1011(const S&&) {} // { dg-message "" } |
| |
| void ucl1100(S&); |
| void ucl1100(const S&) {} |
| |
| void ucl1101(S&); |
| void ucl1101(const S&) {} |
| void ucl1101(const S&&); |
| |
| void ucl1110(S&); |
| void ucl1110(const S&) {} |
| void ucl1110(S&&); |
| |
| void ucl1111(S&); |
| void ucl1111(const S&) {} |
| void ucl1111(S&&); |
| void ucl1111(const S&&); |
| |
| void ur0001(const S&&) {} |
| |
| void ur0010(S&&) {} |
| |
| void ur0011(S&&) {} |
| void ur0011(const S&&); |
| |
| void ur0100(const S&) {} |
| |
| void ur0101(const S&); |
| void ur0101(const S&&) {} |
| |
| void ur0110(const S&); |
| void ur0110(S&&) {} |
| |
| void ur0111(const S&); |
| void ur0111(S&&) {} |
| void ur0111(const S&&); |
| |
| void ur1001(S&); |
| void ur1001(const S&&) {} |
| |
| void ur1010(S&); |
| void ur1010(S&&) {} |
| |
| void ur1011(S&); |
| void ur1011(S&&) {} |
| void ur1011(const S&&); |
| |
| void ur1100(S&); |
| void ur1100(const S&) {} |
| |
| void ur1101(S&); |
| void ur1101(const S&); |
| void ur1101(const S&&) {} |
| |
| void ur1110(S&); |
| void ur1110(const S&); |
| void ur1110(S&&) {} |
| |
| void ur1111(S&); |
| void ur1111(const S&); |
| void ur1111(S&&) {} |
| void ur1111(const S&&); |
| |
| void ucr0001(const S&&) {} |
| |
| void ucr0011(S&&); |
| void ucr0011(const S&&) {} |
| |
| void ucr0100(const S&) {} |
| |
| void ucr0101(const S&); |
| void ucr0101(const S&&) {} |
| |
| void ucr0110(const S&) {} |
| void ucr0110(S&&); |
| |
| void ucr0111(const S&); |
| void ucr0111(S&&); |
| void ucr0111(const S&&) {} |
| |
| void ucr1001(S&); |
| void ucr1001(const S&&) {} |
| |
| void ucr1011(S&); |
| void ucr1011(S&&); |
| void ucr1011(const S&&) {} |
| |
| void ucr1100(S&); |
| void ucr1100(const S&) {} |
| |
| void ucr1101(S&); |
| void ucr1101(const S&); |
| void ucr1101(const S&&) {} |
| |
| void ucr1110(S&); |
| void ucr1110(const S&) {} |
| void ucr1110(S&&); |
| |
| void ucr1111(S&); |
| void ucr1111(const S&); |
| void ucr1111(S&&); |
| void ucr1111(const S&&) {} |
| |
| |
| int main() |
| { |
| l0001(l); // { dg-error "" } |
| l0010(l); // { dg-error "" } |
| l0011(l); // { dg-error "" } |
| l0100(l); |
| l0101(l); |
| l0110(l); |
| l0111(l); |
| l1000(l); |
| l1001(l); |
| l1010(l); |
| l1011(l); |
| l1100(l); |
| l1101(l); |
| l1110(l); |
| l1111(l); |
| cl0001(cl); // { dg-error "lvalue" } |
| cl0011(cl); // { dg-error "lvalue" } |
| cl0100(cl); |
| cl0101(cl); |
| cl0110(cl); |
| cl0111(cl); |
| cl1001(cl); // { dg-error "" } |
| cl1011(cl); // { dg-error "" } |
| cl1100(cl); |
| cl1101(cl); |
| cl1110(cl); |
| cl1111(cl); |
| r0001(r()); |
| r0010(r()); |
| r0011(r()); |
| r0100(r()); |
| r0101(r()); |
| r0110(r()); |
| r0111(r()); |
| r1001(r()); |
| r1010(r()); |
| r1011(r()); |
| r1100(r()); |
| r1101(r()); |
| r1110(r()); |
| r1111(r()); |
| cr0001(cr()); |
| cr0011(cr()); |
| cr0100(cr()); |
| cr0101(cr()); |
| cr0110(cr()); |
| cr0111(cr()); |
| cr1001(cr()); |
| cr1011(cr()); |
| cr1100(cr()); |
| cr1101(cr()); |
| cr1110(cr()); |
| cr1111(cr()); |
| nl0001(nl); // { dg-error "lvalue" } |
| nl0010(nl); // { dg-error "lvalue" } |
| nl0011(nl); // { dg-error "lvalue" } |
| nl0100(nl); |
| nl0101(nl); |
| nl0110(nl); |
| nl0111(nl); |
| nl1000(nl); |
| nl1001(nl); |
| nl1010(nl); |
| nl1011(nl); |
| nl1100(nl); |
| nl1101(nl); |
| nl1110(nl); |
| nl1111(nl); |
| ncl0001(ncl); // { dg-error "lvalue" } |
| ncl0011(ncl); // { dg-error "lvalue" } |
| ncl0100(ncl); |
| ncl0101(ncl); |
| ncl0110(ncl); |
| ncl0111(ncl); |
| ncl1001(ncl); // { dg-error "" } |
| ncl1011(ncl); // { dg-error "" } |
| ncl1100(ncl); |
| ncl1101(ncl); |
| ncl1110(ncl); |
| ncl1111(ncl); |
| nr0001(nr); // { dg-error "lvalue" } |
| nr0010(nr); // { dg-error "lvalue" } |
| nr0011(nr); // { dg-error "lvalue" } |
| nr0100(nr); |
| nr0101(nr); |
| nr0110(nr); |
| nr0111(nr); |
| nr1000(nr); |
| nr1001(nr); |
| nr1010(nr); |
| nr1011(nr); |
| nr1100(nr); |
| nr1101(nr); |
| nr1110(nr); |
| nr1111(nr); |
| ncr0001(ncr); // { dg-error "lvalue" } |
| ncr0011(ncr); // { dg-error "lvalue" } |
| ncr0100(ncr); |
| ncr0101(ncr); |
| ncr0110(ncr); |
| ncr0111(ncr); |
| ncr1001(ncr); // { dg-error "" } |
| ncr1011(ncr); // { dg-error "" } |
| ncr1100(ncr); |
| ncr1101(ncr); |
| ncr1110(ncr); |
| ncr1111(ncr); |
| ul0001(ul()); // { dg-error "lvalue" } |
| ul0010(ul()); // { dg-error "lvalue" } |
| ul0011(ul()); // { dg-error "lvalue" } |
| ul0100(ul()); |
| ul0101(ul()); |
| ul0110(ul()); |
| ul0111(ul()); |
| ul1000(ul()); |
| ul1001(ul()); |
| ul1010(ul()); |
| ul1011(ul()); |
| ul1100(ul()); |
| ul1101(ul()); |
| ul1110(ul()); |
| ul1111(ul()); |
| ucl0001(ucl()); // { dg-error "lvalue" } |
| ucl0011(ucl()); // { dg-error "lvalue" } |
| ucl0100(ucl()); |
| ucl0101(ucl()); |
| ucl0110(ucl()); |
| ucl0111(ucl()); |
| ucl1001(ucl()); // { dg-error "" } |
| ucl1011(ucl()); // { dg-error "" } |
| ucl1100(ucl()); |
| ucl1101(ucl()); |
| ucl1110(ucl()); |
| ucl1111(ucl()); |
| ur0001(ur()); |
| ur0010(ur()); |
| ur0011(ur()); |
| ur0100(ur()); |
| ur0101(ur()); |
| ur0110(ur()); |
| ur0111(ur()); |
| ur1001(ur()); |
| ur1010(ur()); |
| ur1011(ur()); |
| ur1100(ur()); |
| ur1101(ur()); |
| ur1110(ur()); |
| ur1111(ur()); |
| ucr0001(ucr()); |
| ucr0011(ucr()); |
| ucr0100(ucr()); |
| ucr0101(ucr()); |
| ucr0110(ucr()); |
| ucr0111(ucr()); |
| ucr1001(ucr()); |
| ucr1011(ucr()); |
| ucr1100(ucr()); |
| ucr1101(ucr()); |
| ucr1110(ucr()); |
| ucr1111(ucr()); |
| |
| return 0; |
| } |