// RUN: %clang_cc1 -fsyntax-only -verify %s template struct x { static const int j = i; x* y; }; template const int x::j; int array0[x<2>::j]; template struct X0 { static const unsigned value = sizeof(T); }; template const unsigned X0::value; int array1[X0::value == sizeof(int)? 1 : -1]; const unsigned& testX0() { return X0::value; } int array2[X0::value == sizeof(int)? 1 : -1]; template struct X1 { static const unsigned value; }; template const unsigned X1::value = sizeof(T); int array3[X1::value == sizeof(int)? 1 : -1];