1 // PR c++/88103 2 // { dg-do compile { target c++11 } } 3 4 struct A { 5 A (int); 6 A&& foo () &&; 7 int i; 8 }; 9 void free (A&&); 10 test_xvalue(A a)11void test_xvalue (A a){ 12 A&& ref = true ? static_cast<A&&> (a) : static_cast<A&&> (a); 13 free (true ? static_cast<A&&> (a) : static_cast<A&&> (a)); 14 (true ? static_cast<A&&> (a) : static_cast<A&&> (a)).foo (); 15 int&& k = (true ? static_cast<A&&> (a) : static_cast<A&&> (a)).i; 16 } test_prvalue(A a)17void test_prvalue (A a){ 18 A&& ref = true ? static_cast<A&&> (a) : 1; 19 free (true ? static_cast<A&&> (a) : 1); 20 (true ? static_cast<A&&> (a) : 1).foo (); 21 int&& k = (true ? static_cast<A&&> (a) : 1).i; 22 } 23