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>
f()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 
f(int i,C<int>::C c)38 void f(int i, C<int>::C c) {
39   int value;
40 }
41 
42 }
43