// RUN: %clang_cc1 -fsyntax-only -Wall -verify %s | |
template<typename a> struct A { | |
template <typename b> struct B { | |
template <typename c> struct C { | |
template <typename d> struct D { | |
template <typename e> struct E { | |
e field; | |
E() : field(0) { | |
d v1 = 4; | |
c v2 = v1 * v1; | |
b v3 = 8; | |
a v4 = v3 * v3; | |
field += v2 + v4; | |
} | |
}; | |
}; | |
}; | |
}; | |
}; | |
A<int>::B<int>::C<int>::D<int>::E<int> global; | |
// PR5352 | |
template <typename T> | |
class Foo { | |
public: | |
Foo() {} | |
struct Bar { | |
T value; | |
}; | |
Bar u; | |
}; | |
template class Foo<int>; |