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