// { dg-do compile { target c++11_only } } class C; struct A { A (); private: ~A (){ } friend class C; }; struct B : virtual A { // { dg-error "is private" } B (); virtual bool Ok () = 0; // abstract }; struct C : B { // { dg-error "use of deleted" } C (); virtual bool Ok (); }; C c; // { dg-error "use of deleted" }