brintos

brintos / llvm-project-archived public Read only

0
0
Text · 921 B · 41f70b8 Raw
45 lines · cpp
1// RUN: %clang_cc1 -mllvm -emptyline-comment-coverage=false -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -std=c++11 %s | FileCheck %s2 3#define BREAK break4 5enum class MD {6  Val1,7  Val28};9 10void nop() {}11 12// CHECK: foo13// CHECK-NEXT: File 0, [[@LINE+1]]:16 -> {{[0-9]+}}:2 = #014void foo(MD i) {15  switch (i) {16  #define HANDLE_MD(X)                                          \17  case MD::X:                                                   \18    break;19  #include "Inputs/md.def"20  default:21    BREAK;22  }23 24  if (false)25    nop();26  #define HANDLE_MD(X) else if (i == MD::X) { nop(); }27  #include "Inputs/md.def"28}29 30// CHECK: bar31// CHECK-NEXT: File 0, [[@LINE+3]]:12 -> [[@LINE+8]]:2 = #032bool isVal1();33bool isVal2();34bool bar() {35 #define HANDLE_MD(X) is##X() ||36  return37#include "Inputs/md.def"38  0;39}40 41int main(int argc, const char *argv[]) {42  foo(MD::Val1);43  return 0;44}45