1 // The hack for PR c++/44909 breaks this testcase. We need feedback 2 // from the C++ committee to know how to proceed. 3 // { dg-do compile { target c++11 } } 4 5 struct A 6 { 7 A(); 8 A(A&); 9 }; 10 11 struct B; 12 struct BP 13 { 14 BP(const B&); 15 }; 16 17 struct B 18 { 19 B(); 20 B(B&&); 21 B(const BP&); 22 }; 23 24 // If B(B&&) suppresses the B copy constructor, then copying the B 25 // subobject of C should use B(const BP&). But we ignore that constructor 26 // in order to break the cycle in 44909. Perhaps the move ctor shouldn't 27 // suppress the copy ctor? 28 // As of DR 1082, it doesn't suppress it. 29 struct C: A, B { }; // { dg-error "use of deleted" } 30 31 C c; 32 C c2(c); // { dg-error "deleted" } 33