instantiate-enum.cpp 563 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // RUN: %clang_cc1 -fsyntax-only %s
  2. template<typename T, T I, int J>
  3. struct adder {
  4. enum {
  5. value = I + J,
  6. value2
  7. };
  8. };
  9. int array1[adder<long, 3, 4>::value == 7? 1 : -1];
  10. namespace PR6375 {
  11. template<typename T>
  12. void f() {
  13. enum Enum
  14. {
  15. enumerator1 = 0xFFFFFFF,
  16. enumerator2 = enumerator1 - 1
  17. };
  18. int xb1 = enumerator1;
  19. int xe1 = enumerator2;
  20. }
  21. template void f<int>();
  22. }
  23. namespace EnumScoping {
  24. template <typename T>
  25. class C {
  26. enum {
  27. value = 42
  28. };
  29. };
  30. void f(int i, C<int>::C c) {
  31. int value;
  32. }
  33. }