1// Copyright (C) 2001 Free Software Foundation
2// Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3// { dg-do compile }
4
5struct A
6{
7	template <class T> class B {};
8};
9
10template <template <class> class TT> struct X
11{
12	TT<int> y;
13};
14
15template <class T> struct X<T::template B> // { dg-error "previous" }
16{
17	T z;
18};
19
20template <class T> struct X<T::template B> // { dg-error "redefinition" }
21{
22	T z;
23};
24
25template <class T> struct C
26{
27	X<T::template B> x;
28};
29
30int main()
31{
32	C<A> c;
33}
34