// I, Howard Hinnant, hereby place this code in the public domain. // Test: Unamed rvalue references are treated as lvalues. // { dg-do compile { target c++11 } } template struct sa; template <> struct sa {}; struct one {long x[1];}; struct two {long x[2];}; struct A {}; one foo(const A&) {return one();} two foo(A&&) {return two();} template inline _Tp&& movel(_Tp& __t) { return static_cast<_Tp&&>(__t); } A&& source() {static A a; return movel(a);} int test1() { sa t1; return 0; } int main() { return test1(); }