// { dg-do compile } struct X { private: template struct Y { int data; }; public: int value; }; int main() { typename X::Y a; // { dg-error "private" } }