1// RUN: %clang_cc1 -fsyntax-only %s
2
3template<typename T, T I, int J>
4struct adder {
5  enum {
6    value = I + J,
7    value2
8  };
9};
10
11int array1[adder<long, 3, 4>::value == 7? 1 : -1];
12
13namespace 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
29namespace EnumScoping {
30
31template <typename T>
32class C {
33  enum {
34    value = 42
35  };
36};
37
38void f(int i, C<int>::C c) {
39  int value;
40}
41
42}
43