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
6int 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