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