1 // RUN: %clang_cc1 -fsyntax-only -Wall -verify %s 2 // expected-no-diagnostics 3 template<typename a> struct A { 4 template <typename b> struct B { 5 template <typename c> struct C { 6 template <typename d> struct D { 7 template <typename e> struct E { 8 e field; EA::B::C::D::E9 E() : field(0) { 10 d v1 = 4; 11 c v2 = v1 * v1; 12 b v3 = 8; 13 a v4 = v3 * v3; 14 field += v2 + v4; 15 } 16 }; 17 }; 18 }; 19 }; 20 }; 21 22 A<int>::B<int>::C<int>::D<int>::E<int> global; 23 24 // PR5352 25 template <typename T> 26 class Foo { 27 public: Foo()28 Foo() {} 29 30 struct Bar { 31 T value; 32 }; 33 34 Bar u; 35 }; 36 37 template class Foo<int>; 38