1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 3 enum Enum { val = 1 }; 4 template <Enum v> struct C { 5 typedef C<v> Self; 6 }; 7 template struct C<val>; 8 9 template<typename T> 10 struct get_size { 11 static const unsigned value = sizeof(T); 12 }; 13 14 template<typename T> 15 struct X0 { 16 enum { 17 Val1 = get_size<T>::value, 18 Val2, 19 SumOfValues = Val1 + Val2 20 }; 21 }; 22 23 X0<int> x0i; 24 25 namespace rdar8020920 { 26 template<typename T> 27 struct X { 28 enum { e0 = 32 }; 29 30 unsigned long long bitfield : e0; 31 frdar8020920::X32 void f(int j) { 33 bitfield + j; 34 } 35 }; 36 } 37