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