Home | History | Annotate | Download | only in SemaTemplate
      1 // RUN: %clang_cc1 -fsyntax-only %s
      2 
      3 template<typename T, T I, int J>
      4 struct adder {
      5   enum {
      6     value = I + J,
      7     value2
      8   };
      9 };
     10 
     11 int array1[adder<long, 3, 4>::value == 7? 1 : -1];
     12 
     13 namespace PR6375 {
     14   template<typename T>
     15   void f() {
     16     enum Enum
     17     {
     18       enumerator1 = 0xFFFFFFF,
     19       enumerator2 = enumerator1 - 1
     20     };
     21 
     22     int xb1 = enumerator1;
     23     int xe1 = enumerator2;
     24   }
     25 
     26   template void f<int>();
     27 }
     28 
     29 namespace EnumScoping {
     30 
     31 template <typename T>
     32 class C {
     33   enum {
     34     value = 42
     35   };
     36 };
     37 
     38 void f(int i, C<int>::C c) {
     39   int value;
     40 }
     41 
     42 }
     43