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 struct C {
33   struct X {};
34   enum {
35     value = 42
36   };
37 };
38 
f(int i,C<int>::X c)39 void f(int i, C<int>::X c) {
40   int value;
41 }
42 
43 }
44