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