• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Remove comments first.
2 // RUN: sed 's/[ \t]*\/\/.*//' %s > %t.stripped.cpp
3 // RUN: %clangxx_profgen -fcoverage-mapping -o %t %t.stripped.cpp
4 // RUN: env LLVM_PROFILE_FILE=%t.profraw %run %t
5 // RUN: llvm-profdata merge -o %t.profdata %t.profraw
6 // RUN: llvm-cov show %t -instr-profile %t.profdata -path-equivalence=/tmp,%S 2>&1 | FileCheck %s
7 
8 
main()9 int main() {                        // CHECK:       [[# @LINE]]| 1|int main() {
10     int x = 0;                      // CHECK-NEXT:  [[# @LINE]]| 1|
11                                     // CHECK-NEXT:  [[# @LINE]]|  |
12     x = 1;                          // CHECK-NEXT:  [[# @LINE]]| 1|
13     if (x)                          // CHECK-NEXT:  [[# @LINE]]| 1|
14                                     // CHECK-NEXT:  [[# @LINE]]|  |
15         x                           // CHECK-NEXT:  [[# @LINE]]| 1|
16                                     // CHECK-NEXT:  [[# @LINE]]|  |
17         =                           // CHECK-NEXT:  [[# @LINE]]| 1|
18                                     // CHECK-NEXT:  [[# @LINE]]|  |
19                                     // CHECK-NEXT:  [[# @LINE]]|  |
20         0;                          // CHECK-NEXT:  [[# @LINE]]| 1|
21                                     // CHECK-NEXT:  [[# @LINE]]|  |
22     if (x)                          // CHECK-NEXT:  [[# @LINE]]| 1|
23                                     // CHECK-NEXT:  [[# @LINE]]|  |
24                                     // CHECK-NEXT:  [[# @LINE]]|  |
25         x = 1;                      // CHECK-NEXT:  [[# @LINE]]| 0|
26                                     // CHECK-NEXT:  [[# @LINE]]|  |
27     #ifdef UNDEFINED                // CHECK-NEXT:  [[# @LINE]]|  |
28                                     // CHECK-NEXT:  [[# @LINE]]|  |
29     int y = 0;                      // CHECK-NEXT:  [[# @LINE]]|  |
30                                     // CHECK-NEXT:  [[# @LINE]]|  |
31     y = 1;                          // CHECK-NEXT:  [[# @LINE]]|  |
32     if (y)                          // CHECK-NEXT:  [[# @LINE]]|  |
33                                     // CHECK-NEXT:  [[# @LINE]]|  |
34         y                           // CHECK-NEXT:  [[# @LINE]]|  |
35                                     // CHECK-NEXT:  [[# @LINE]]|  |
36         =                           // CHECK-NEXT:  [[# @LINE]]|  |
37                                     // CHECK-NEXT:  [[# @LINE]]|  |
38                                     // CHECK-NEXT:  [[# @LINE]]|  |
39         0;                          // CHECK-NEXT:  [[# @LINE]]|  |
40                                     // CHECK-NEXT:  [[# @LINE]]|  |
41     #endif                          // CHECK-NEXT:  [[# @LINE]]|  |
42                                     // CHECK-NEXT:  [[# @LINE]]|  |
43     #define DEFINED 1               // CHECK-NEXT:  [[# @LINE]]| 1|
44                                     // CHECK-NEXT:  [[# @LINE]]|  |
45     #ifdef DEFINED                  // CHECK-NEXT:  [[# @LINE]]| 1|
46                                     // CHECK-NEXT:  [[# @LINE]]|  |
47     int y = 0;                      // CHECK-NEXT:  [[# @LINE]]| 1|
48                                     // CHECK-NEXT:  [[# @LINE]]|  |
49     y = 1;                          // CHECK-NEXT:  [[# @LINE]]| 1|
50     if (y)                          // CHECK-NEXT:  [[# @LINE]]| 1|
51                                     // CHECK-NEXT:  [[# @LINE]]|  |
52         y                           // CHECK-NEXT:  [[# @LINE]]| 1|
53                                     // CHECK-NEXT:  [[# @LINE]]|  |
54         =                           // CHECK-NEXT:  [[# @LINE]]| 1|
55                                     // CHECK-NEXT:  [[# @LINE]]|  |
56                                     // CHECK-NEXT:  [[# @LINE]]|  |
57         0;                          // CHECK-NEXT:  [[# @LINE]]| 1|
58     #endif                          // CHECK-NEXT:  [[# @LINE]]| 1|
59                                     // CHECK-NEXT:  [[# @LINE]]|  |
60     return 0;                       // CHECK-NEXT:  [[# @LINE]]| 1|
61 }                                   // CHECK-NEXT:  [[# @LINE]]| 1|
62