// { dg-do assemble  }
// Test that access control for types and statics works properly
// with nested types.


class A {
  static int I1;		// { dg-error "" } private
  struct B1 { };		// { dg-error "" } private
public:
  static int I2;
  struct B2 { };
};

class D: public A {
  struct E {
    void f ();
  };
};

void D::E::f ()
{
  int i = I1;			// { dg-error "" } within this context
  B1 b1;			// { dg-error "" } within this context
  i = I2;
  B2 b2;
}

void f ()
{
  A::B1 b1;			// { dg-error "" } within this context
  new A::B1;			// { dg-error "" } within this context
  (A::B1) b1;			// { dg-error "" } within this context
}
