| // { 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 |
| } |