// PR C++/52369 // { dg-do compile { target c++11 } } class B // { dg-message "implicitly deleted" } // { dg-error "uninitialized" "" { target c++11 } 4 } { int const v_; // { dg-message "should be initialized" } }; struct D : B {}; // { dg-error "deleted" } class A // { dg-message "implicitly deleted" } // { dg-error "uninitialized" "" { target c++11 } 12 } { int& ref; // { dg-message "should be initialized" } }; struct C : A {}; // { dg-error "deleted" } void f() { D d; // { dg-error "use of deleted" } new D; // { dg-error "use of deleted" } D(); // { dg-error "use of deleted" } new D(); // { dg-error "use of deleted" } C c; // { dg-error "use of deleted" } new C; // { dg-error "use of deleted" } C(); // { dg-error "use of deleted" } new C(); // { dg-error "use of deleted" } }