1// XFAIL: target={{.*}}-aix{{.*}}
2// Remove comments first.
3// RUN: sed 's/[ \t]*\/\/.*//' %s > %t.stripped.cpp
4// RUN: %clangxx_profgen -fcoverage-mapping -o %t %t.stripped.cpp
5// RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t
6// RUN: llvm-profdata merge -o %t.profdata %t.profraw
7// RUN: llvm-cov show %t -instr-profile %t.profdata 2>&1 | FileCheck %s
8
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

source code of compiler-rt/test/profile/coverage_emptylines.cpp