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