| // The hack for PR c++/44909 breaks this testcase. We need feedback |
| // from the C++ committee to know how to proceed. |
| // { dg-do compile { target c++11 } } |
| |
| struct A |
| { |
| A(); |
| A(A&); |
| }; |
| |
| struct B; |
| struct BP |
| { |
| BP(const B&); |
| }; |
| |
| struct B |
| { |
| B(); |
| B(B&&); |
| B(const BP&); |
| }; |
| |
| // If B(B&&) suppresses the B copy constructor, then copying the B |
| // subobject of C should use B(const BP&). But we ignore that constructor |
| // in order to break the cycle in 44909. Perhaps the move ctor shouldn't |
| // suppress the copy ctor? |
| // As of DR 1082, it doesn't suppress it. |
| struct C: A, B { }; // { dg-error "use of deleted" } |
| |
| C c; |
| C c2(c); // { dg-error "deleted" } |