// { dg-do compile } // Origin: Wolfgang Bangerth // PR c++/7347 // Access control for typename during instantiation template class Base { protected: typedef int T; }; template class D : public Base { public: typedef typename Base::T T1; D (T1 t); }; D<2> d(1);