Home | History | Annotate | Download | only in SemaTemplate
      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 
     23 const 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