1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 // expected-no-diagnostics 3 template<int i> struct x { 4 static const int j = i; 5 x<j>* y; 6 }; 7 8 template<int i> 9 const int x<i>::j; 10 11 int array0[x<2>::j]; 12 13 template<typename T> 14 struct X0 { 15 static const unsigned value = sizeof(T); 16 }; 17 18 template<typename T> 19 const unsigned X0<T>::value; 20 21 int array1[X0<int>::value == sizeof(int)? 1 : -1]; 22 testX0()23const unsigned& testX0() { return X0<int>::value; } 24 25 int array2[X0<int>::value == sizeof(int)? 1 : -1]; 26 27 template<typename T> 28 struct X1 { 29 static const unsigned value; 30 }; 31 32 template<typename T> 33 const unsigned X1<T>::value = sizeof(T); 34 35 int array3[X1<int>::value == sizeof(int)? 1 : -1]; 36