1 | // RUN: %clangxx_profgen -fcoverage-mapping -Wno-comment -o %t %s |
2 | // RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t |
3 | // RUN: llvm-profdata merge -o %t.profdata %t.profraw |
4 | // RUN: llvm-cov show %t -instr-profile %t.profdata 2>&1 | FileCheck %s |
5 | |
6 | int main() { // CHECK: [[# @LINE]]| 1|int main() { |
7 | /* comment */ int x = 0; // CHECK-NEXT: [[# @LINE]]| 1| |
8 | int y = 0; /* comment */ // CHECK-NEXT: [[# @LINE]]| 1| |
9 | int z = 0; // comment // CHECK-NEXT: [[# @LINE]]| 1| |
10 | // comment // CHECK-NEXT: [[# @LINE]]| | |
11 | // CHECK-NEXT: [[# @LINE]]| | |
12 | x = 0; /* // CHECK-NEXT: [[# @LINE]]| 1| |
13 | comment // CHECK-NEXT: [[# @LINE]]| | |
14 | */ // CHECK-NEXT: [[# @LINE]]| | |
15 | // CHECK-NEXT: [[# @LINE]]| | |
16 | /* // CHECK-NEXT: [[# @LINE]]| | |
17 | comment // CHECK-NEXT: [[# @LINE]]| | |
18 | */ x = 0; // CHECK-NEXT: [[# @LINE]]| 1| |
19 | // CHECK-NEXT: [[# @LINE]]| | |
20 | /* comment */ // CHECK-NEXT: [[# @LINE]]| | |
21 | // comment // CHECK-NEXT: [[# @LINE]]| | |
22 | /* comment */ // CHECK-NEXT: [[# @LINE]]| | |
23 | z = // CHECK-NEXT: [[# @LINE]]| 1| |
24 | x // comment // CHECK-NEXT: [[# @LINE]]| 1| |
25 | // comment // CHECK-NEXT: [[# @LINE]]| | |
26 | + /* // CHECK-NEXT: [[# @LINE]]| 1| |
27 | comment // CHECK-NEXT: [[# @LINE]]| | |
28 | */ // CHECK-NEXT: [[# @LINE]]| | |
29 | /* // CHECK-NEXT: [[# @LINE]]| | |
30 | comment // CHECK-NEXT: [[# @LINE]]| | |
31 | */y; // CHECK-NEXT: [[# @LINE]]| 1| |
32 | // CHECK-NEXT: [[# @LINE]]| | |
33 | // Comments inside directives. // CHECK-NEXT: [[# @LINE]]| | |
34 | #if 0 //comment // CHECK-NEXT: [[# @LINE]]| | |
35 | /* comment */ x = 0; // CHECK-NEXT: [[# @LINE]]| | |
36 | y = 0; /* comment */ // CHECK-NEXT: [[# @LINE]]| | |
37 | z = 0; // comment // CHECK-NEXT: [[# @LINE]]| | |
38 | // comment // CHECK-NEXT: [[# @LINE]]| | |
39 | // CHECK-NEXT: [[# @LINE]]| | |
40 | x = 0; /* // CHECK-NEXT: [[# @LINE]]| | |
41 | comment // CHECK-NEXT: [[# @LINE]]| | |
42 | */ // CHECK-NEXT: [[# @LINE]]| | |
43 | // CHECK-NEXT: [[# @LINE]]| | |
44 | /* // CHECK-NEXT: [[# @LINE]]| | |
45 | comment // CHECK-NEXT: [[# @LINE]]| | |
46 | */ x = 0; // CHECK-NEXT: [[# @LINE]]| | |
47 | // CHECK-NEXT: [[# @LINE]]| | |
48 | /* comment */ // CHECK-NEXT: [[# @LINE]]| | |
49 | // comment // CHECK-NEXT: [[# @LINE]]| | |
50 | /* comment */ // CHECK-NEXT: [[# @LINE]]| | |
51 | #endif // comment // CHECK-NEXT: [[# @LINE]]| | |
52 | #if 1 // comment // CHECK-NEXT: [[# @LINE]]| 1| |
53 | /* comment */ x = 0; // CHECK-NEXT: [[# @LINE]]| 1| |
54 | y = 0; /* comment */ // CHECK-NEXT: [[# @LINE]]| 1| |
55 | z = 0; // comment // CHECK-NEXT: [[# @LINE]]| 1| |
56 | // comment // CHECK-NEXT: [[# @LINE]]| | |
57 | // CHECK-NEXT: [[# @LINE]]| | |
58 | x = 0; /* // CHECK-NEXT: [[# @LINE]]| 1| |
59 | comment // CHECK-NEXT: [[# @LINE]]| | |
60 | */ // CHECK-NEXT: [[# @LINE]]| | |
61 | // CHECK-NEXT: [[# @LINE]]| | |
62 | /* // CHECK-NEXT: [[# @LINE]]| | |
63 | comment // CHECK-NEXT: [[# @LINE]]| | |
64 | */ x = 0; // CHECK-NEXT: [[# @LINE]]| 1| |
65 | // CHECK-NEXT: [[# @LINE]]| | |
66 | /* comment */ // CHECK-NEXT: [[# @LINE]]| | |
67 | // comment // CHECK-NEXT: [[# @LINE]]| | |
68 | /* comment */ // CHECK-NEXT: [[# @LINE]]| | |
69 | #endif //comment // CHECK-NEXT: [[# @LINE]]| 1| |
70 | return 0; // CHECK-NEXT: [[# @LINE]]| 1| |
71 | } // CHECK-NEXT: [[# @LINE]]| 1| |
72 | |