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