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