| // RUN: %clang_cc1 -fsyntax-only %s | |
| template<typename T, T I, int J> | |
| struct adder { | |
| enum { | |
| value = I + J, | |
| value2 | |
| }; | |
| }; | |
| int array1[adder<long, 3, 4>::value == 7? 1 : -1]; | |
| namespace PR6375 { | |
| template<typename T> | |
| void f() { | |
| enum Enum | |
| { | |
| enumerator1 = 0xFFFFFFF, | |
| enumerator2 = enumerator1 - 1 | |
| }; | |
| int xb1 = enumerator1; | |
| int xe1 = enumerator2; | |
| } | |
| template void f<int>(); | |
| } | |
| namespace EnumScoping { | |
| template <typename T> | |
| struct C { | |
| struct X {}; | |
| enum { | |
| value = 42 | |
| }; | |
| }; | |
| void f(int i, C<int>::X c) { | |
| int value; | |
| } | |
| } |