1 // Core issue 934/1288
2 // { dg-do compile { target c++11 } }
3 
4 int i;
5 
6 int& r1{ i };			// OK, direct binding
7 int&& r2{ i };			// { dg-error "" } binding && to lvalue
8 
9 int& r3{ };			// { dg-error "" } reference to temporary
10 int&& r4{ };			// OK, reference to temporary
11 
12 struct A { int i; } a;
13 
14 A& r5 { i };			// { dg-error "" } reference to temporary
15 A&& r6 { i };			// OK, aggregate initialization of temporary
16 A& r7 { a };			// OK, direct-initialization
17 A&& r8 { a };			// { dg-error "lvalue" } binding && to lvalue
18 
19 struct B { B(int); int i; } b(0);
20 
21 B& r9 { i };			// { dg-error "" } reference to temporary
22 B&& r10 { i };			// OK, make temporary with B(int) constructor
23 B& r11 { b };			// OK, direct-initialization
24 B&& r12 { b };			// { dg-error "lvalue" } binding && to lvalue
25