// Contributed by Dodji Seketeli // Origin PR c++/40007 // { dg-do compile } class x { typedef int privtype; // { dg-error "is private" } protected: typedef int type; }; template struct y : public x { typename x::type z; }; template struct y : public x { typedef x::type good; typedef x::privtype bad; // { dg-error "within this context" } }; template class y; template class y;