blob: 243f83be73e9d3c5730c2ed852a33a0b63d3dd39 [file] [log] [blame]
// { 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;
}