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 -path-equivalence=/tmp,%S 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