// { dg-do compile } // Origin: Detlef Vollmann // PR c++/8389 // Access control ICE for typename during instantiation and name mangling template class Base { protected: typedef int Type; }; template struct Derived : public Base { typedef typename Base::Type Type; template void f(Type = Type()) {} }; template void Derived::f (Type);