1 // { dg-do assemble } 2 // Make sure definitions of static members have the right access. 3 4 struct A { 5 protected: 6 int i; // { dg-message "" } private 7 int f (); // { dg-message "" } 8 }; 9 10 struct B: public A { 11 static int A::*p; 12 static int (A::*fp)(); 13 }; 14 15 int A::* B::p = &A::i; // { dg-error "" } 16 int (A::* B::fp)() = &A::f; // { dg-error "" } 17 18 struct C { 19 static int A::*p; 20 static int (A::*fp)(); 21 }; 22 23 int A::* C::p = &A::i; // { dg-error "" } 24 int (A::* C::fp)() = &A::f; // { dg-error "" } 25