md.cpp 686 B

123456789101112131415161718192021222324252627282930313233
  1. // RUN: %clang_cc1 -fprofile-instr-generate -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -std=c++11 %s | FileCheck %s
  2. #define BREAK break
  3. enum class MD {
  4. Val1,
  5. Val2
  6. };
  7. void nop() {}
  8. // CHECK: foo
  9. // CHECK-NEXT: File 0, [[@LINE+1]]:16 -> {{[0-9]+}}:2 = #0
  10. void foo(MD i) {
  11. switch (i) {
  12. #define HANDLE_MD(X) \
  13. case MD::X: \
  14. break;
  15. #include "Inputs/md.def"
  16. default:
  17. BREAK;
  18. }
  19. if (false)
  20. nop();
  21. #define HANDLE_MD(X) else if (i == MD::X) { nop(); }
  22. #include "Inputs/md.def"
  23. }
  24. int main(int argc, const char *argv[]) {
  25. foo(MD::Val1);
  26. return 0;
  27. }