// 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; } }