1 // { dg-do compile }
2 
3 // PR c++/5387
4 // Enforcing access of typename type.
5 
6 template <class T> struct A {
7   typename T::template X<int> x;	// { dg-error "this context" }
8 };
9 
10 class B {
11   template <class T> class X {};	// { dg-message "private" }
12 };
13 
main()14 int main()
15 {
16   A<B> ab;				// { dg-message "required" }
17 }
18