63 lines · cpp
1// XFAIL: target={{.*}}-aix{{.*}}2// Remove comments first.3// RUN: sed 's/[ \t]*\/\/.*//' %s > %t.stripped.cpp4// RUN: %clangxx_profgen -fcoverage-mapping -o %t %t.stripped.cpp5// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t6// RUN: llvm-profdata merge -o %t.profdata %t.profraw7// RUN: llvm-cov show %t -instr-profile %t.profdata 2>&1 | FileCheck %s8 9 10int main() { // CHECK: [[# @LINE]]| 1|int main() {11 int x = 0; // CHECK-NEXT: [[# @LINE]]| 1|12 // CHECK-NEXT: [[# @LINE]]| |13 x = 1; // CHECK-NEXT: [[# @LINE]]| 1|14 if (x) // CHECK-NEXT: [[# @LINE]]| 1|15 // CHECK-NEXT: [[# @LINE]]| |16 x // CHECK-NEXT: [[# @LINE]]| 1|17 // CHECK-NEXT: [[# @LINE]]| |18 = // CHECK-NEXT: [[# @LINE]]| 1|19 // CHECK-NEXT: [[# @LINE]]| |20 // CHECK-NEXT: [[# @LINE]]| |21 0; // CHECK-NEXT: [[# @LINE]]| 1|22 // CHECK-NEXT: [[# @LINE]]| |23 if (x) // CHECK-NEXT: [[# @LINE]]| 1|24 // CHECK-NEXT: [[# @LINE]]| |25 // CHECK-NEXT: [[# @LINE]]| |26 x = 1; // CHECK-NEXT: [[# @LINE]]| 0|27 // CHECK-NEXT: [[# @LINE]]| |28 #ifdef UNDEFINED // CHECK-NEXT: [[# @LINE]]| |29 // CHECK-NEXT: [[# @LINE]]| |30 int y = 0; // CHECK-NEXT: [[# @LINE]]| |31 // CHECK-NEXT: [[# @LINE]]| |32 y = 1; // CHECK-NEXT: [[# @LINE]]| |33 if (y) // CHECK-NEXT: [[# @LINE]]| |34 // CHECK-NEXT: [[# @LINE]]| |35 y // CHECK-NEXT: [[# @LINE]]| |36 // CHECK-NEXT: [[# @LINE]]| |37 = // CHECK-NEXT: [[# @LINE]]| |38 // CHECK-NEXT: [[# @LINE]]| |39 // CHECK-NEXT: [[# @LINE]]| |40 0; // CHECK-NEXT: [[# @LINE]]| |41 // CHECK-NEXT: [[# @LINE]]| |42 #endif // CHECK-NEXT: [[# @LINE]]| |43 // CHECK-NEXT: [[# @LINE]]| |44 #define DEFINED 1 // CHECK-NEXT: [[# @LINE]]| 1|45 // CHECK-NEXT: [[# @LINE]]| |46 #ifdef DEFINED // CHECK-NEXT: [[# @LINE]]| 1|47 // CHECK-NEXT: [[# @LINE]]| |48 int y = 0; // CHECK-NEXT: [[# @LINE]]| 1|49 // CHECK-NEXT: [[# @LINE]]| |50 y = 1; // CHECK-NEXT: [[# @LINE]]| 1|51 if (y) // CHECK-NEXT: [[# @LINE]]| 1|52 // CHECK-NEXT: [[# @LINE]]| |53 y // CHECK-NEXT: [[# @LINE]]| 1|54 // CHECK-NEXT: [[# @LINE]]| |55 = // CHECK-NEXT: [[# @LINE]]| 1|56 // CHECK-NEXT: [[# @LINE]]| |57 // CHECK-NEXT: [[# @LINE]]| |58 0; // CHECK-NEXT: [[# @LINE]]| 1|59 #endif // CHECK-NEXT: [[# @LINE]]| 1|60 // CHECK-NEXT: [[# @LINE]]| |61 return 0; // CHECK-NEXT: [[# @LINE]]| 1|62} // CHECK-NEXT: [[# @LINE]]| 1|63