| // { dg-do compile { target c++17 } } | |
| struct A | |
| { | |
| A(); | |
| A(const A&) = delete; | |
| }; | |
| bool b; | |
| A a = A(); | |
| A a1 = b ? A() : A(); | |
| A a2 = (42, A()); | |
| A f(); | |
| A a3 = f(); | |
| A a4 = b ? A() : f(); | |
| void g(A); | |
| A f() { | |
| g(A()); | |
| if (b) | |
| throw A(); | |
| else | |
| return A(); | |
| } | |
| A* ap = new A(f()); | |
| struct B { | |
| A a; | |
| B(): a(A()) {} | |
| }; |