Clang Project

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