OSDN Git Service

PR c++/21929
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / parse / crash11.C
1 // { dg-do compile }
2
3 // Origin: priesnit@math.uni-goettingen.de
4
5 // PR c++/5767: ICE parsing typename with invalid scope.
6
7 template <template <typename> class TP>
8 struct A
9 {
10   template <typename T>
11   struct Template
12   {
13     typedef typename TP<T>::Type Type;
14   };
15 };
16 template <template <typename> class TP>
17 struct B
18 {
19   template <typename T>
20   struct Template
21   {
22     typedef typename A<A<TP>::Template>  // { dg-error "mismatch|class template" }
23       ::template Template<T>::Type Type; // { dg-error "" }
24   };
25 };
26 template <typename T>
27 struct C
28 {
29   typedef void Type;
30 };
31 int main()
32 {
33   typedef B<C>::Template<void>::Type Type; // { dg-error "does not name a type" }
34 }