// { dg-do compile { target c++14 } }
// DR 1658, inaccessible dtor of virtual base doesn't affect an
// abstract class.  But we should stil check access to non-virtual bases.
class C;
struct A {
private:
  ~A (){  }
  friend class C;
};
struct B : A { // { dg-error "is private" }
  virtual bool Ok () = 0; // abstract
};
struct C : B {
  ~C () 
  { }  // { dg-error "use of deleted" }
  virtual bool Ok ();
};