1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 struct A0 { 3 struct K { }; 4 }; 5 6 template <typename T> struct B0: A0 { fB07 static void f() { 8 K k; 9 } 10 }; 11 12 namespace E1 { 13 typedef double A; 14 15 template<class T> class B { 16 typedef int A; 17 }; 18 19 template<class T> 20 struct X : B<T> { blargE1::X21 A* blarg(double *dp) { 22 return dp; 23 } 24 }; 25 } 26 27 namespace E2 { 28 struct A { 29 struct B; 30 int *a; 31 int Y; 32 }; 33 34 int a; 35 template<class T> struct Y : T { 36 struct B { /* ... */ }; 37 B b; fE2::Y38 void f(int i) { a = i; } 39 Y* p; 40 }; 41 42 Y<A> ya; 43 } 44