709 lines
12 KiB
C
709 lines
12 KiB
C
// { dg-options "--std=c++0x" }
|
|
// { dg-do link }
|
|
// 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 "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;
|
|
}
|