text: // RUN: %clangxx_profgen -fcoverage-mapping -Wno-comment -o %t %s
  // RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t
  // RUN: llvm-profdata merge -o %t.profdata %t.profraw
  // RUN: llvm-cov show %t -instr-profile %t.profdata 2>&1 | FileCheck %s
  
  int main() {                           // CHECK:       [[# @LINE]]| 1|int main() {
      /* comment */ int x = 0;           // CHECK-NEXT:  [[# @LINE]]| 1|
      int y = 0; /* comment */           // CHECK-NEXT:  [[# @LINE]]| 1|
      int z = 0; // comment              // CHECK-NEXT:  [[# @LINE]]| 1|
      // comment                         // CHECK-NEXT:  [[# @LINE]]|  |
                                         // CHECK-NEXT:  [[# @LINE]]|  |
      x = 0; /*                          // CHECK-NEXT:  [[# @LINE]]| 1|
      comment                            // CHECK-NEXT:  [[# @LINE]]|  |
      */                                 // CHECK-NEXT:  [[# @LINE]]|  |
                                         // CHECK-NEXT:  [[# @LINE]]|  |
      /*                                 // CHECK-NEXT:  [[# @LINE]]|  |
      comment                            // CHECK-NEXT:  [[# @LINE]]|  |
      */ x = 0;                          // CHECK-NEXT:  [[# @LINE]]| 1|
                                         // CHECK-NEXT:  [[# @LINE]]|  |
      /* comment */                      // CHECK-NEXT:  [[# @LINE]]|  |
      // comment                         // CHECK-NEXT:  [[# @LINE]]|  |
      /* comment */                      // CHECK-NEXT:  [[# @LINE]]|  |
      z =                                // CHECK-NEXT:  [[# @LINE]]| 1|
      x // comment                       // CHECK-NEXT:  [[# @LINE]]| 1|
      // comment                         // CHECK-NEXT:  [[# @LINE]]|  |
      + /*                               // CHECK-NEXT:  [[# @LINE]]| 1|
      comment                            // CHECK-NEXT:  [[# @LINE]]|  |
      */                                 // CHECK-NEXT:  [[# @LINE]]|  |
      /*                                 // CHECK-NEXT:  [[# @LINE]]|  |
      comment                            // CHECK-NEXT:  [[# @LINE]]|  |
      */y;                               // CHECK-NEXT:  [[# @LINE]]| 1|
                                         // CHECK-NEXT:  [[# @LINE]]|  |
      // Comments inside directives.     // CHECK-NEXT:  [[# @LINE]]|  |
      #if 0 //comment                    // CHECK-NEXT:  [[# @LINE]]|  |
      /* comment */ x = 0;               // CHECK-NEXT:  [[# @LINE]]|  |
      y = 0; /* comment */               // CHECK-NEXT:  [[# @LINE]]|  |
      z = 0; // comment                  // CHECK-NEXT:  [[# @LINE]]|  |
      // comment                         // CHECK-NEXT:  [[# @LINE]]|  |
                                         // CHECK-NEXT:  [[# @LINE]]|  |
      x = 0; /*                          // CHECK-NEXT:  [[# @LINE]]|  |
      comment                            // CHECK-NEXT:  [[# @LINE]]|  |
      */                                 // CHECK-NEXT:  [[# @LINE]]|  |
                                         // CHECK-NEXT:  [[# @LINE]]|  | 
      /*                                 // CHECK-NEXT:  [[# @LINE]]|  |
      comment                            // CHECK-NEXT:  [[# @LINE]]|  |
      */ x = 0;                          // CHECK-NEXT:  [[# @LINE]]|  |
                                         // CHECK-NEXT:  [[# @LINE]]|  |
      /* comment */                      // CHECK-NEXT:  [[# @LINE]]|  |
      // comment                         // CHECK-NEXT:  [[# @LINE]]|  |
      /* comment */                      // CHECK-NEXT:  [[# @LINE]]|  |
      #endif // comment                  // CHECK-NEXT:  [[# @LINE]]|  |
      #if 1 // comment                   // CHECK-NEXT:  [[# @LINE]]| 1|
      /* comment */ x = 0;               // CHECK-NEXT:  [[# @LINE]]| 1|
      y = 0; /* comment */               // CHECK-NEXT:  [[# @LINE]]| 1|
      z = 0; // comment                  // CHECK-NEXT:  [[# @LINE]]| 1|
      // comment                         // CHECK-NEXT:  [[# @LINE]]|  |
                                         // CHECK-NEXT:  [[# @LINE]]|  |
      x = 0; /*                          // CHECK-NEXT:  [[# @LINE]]| 1|
      comment                            // CHECK-NEXT:  [[# @LINE]]|  |
      */                                 // CHECK-NEXT:  [[# @LINE]]|  |
                                         // CHECK-NEXT:  [[# @LINE]]|  |
      /*                                 // CHECK-NEXT:  [[# @LINE]]|  |
      comment                            // CHECK-NEXT:  [[# @LINE]]|  |
      */ x = 0;                          // CHECK-NEXT:  [[# @LINE]]| 1|
                                         // CHECK-NEXT:  [[# @LINE]]|  |
      /* comment */                      // CHECK-NEXT:  [[# @LINE]]|  |
      // comment                         // CHECK-NEXT:  [[# @LINE]]|  |
      /* comment */                      // CHECK-NEXT:  [[# @LINE]]|  |
      #endif //comment                   // CHECK-NEXT:  [[# @LINE]]| 1|
      return 0;                          // CHECK-NEXT:  [[# @LINE]]| 1|
  }                                      // CHECK-NEXT:  [[# @LINE]]| 1|
  