// { dg-options "--std=c++0x" } // { dg-do link } // Generated by overload.py template 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 "lvalue" } l0010(l); // { dg-error "lvalue" } l0011(l); // { dg-error "lvalue" } 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 "lvalue" } cl1011(cl); // { dg-error "lvalue" } 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 "lvalue" } ncl1011(ncl); // { dg-error "lvalue" } 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 "lvalue" } ncr1011(ncr); // { dg-error "lvalue" } 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 "lvalue" } ucl1011(ucl()); // { dg-error "lvalue" } 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; }