llvm.org GIT mirror llvm / 17a2f3f
[llvm-cov] Swapped the line and count columns. In the coverage report, the line and count columns have been swapped to make it more readable. A follow-up commit in compiler-rt is needed Differential Revision: https://reviews.llvm.org/D23281 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278152 91177308-0d34-0410-b5e6-96231b3b80d8 Ying Yi 4 years ago
8 changed file(s) with 142 addition(s) and 142 deletion(s). Raw diff Collapse all Expand all
77 T t;
88 };
99
10 template T FOO::DoIt(T ti) { // HEADER: 2| [[@LINE]]|template
11 for (T I = 0; I < ti; I++) { // HEADER: 22| [[@LINE]]| for (T
12 t += I; // HEADER: 20| [[@LINE]]| t += I;
13 if (I > ti / 2) // HEADER: 20| [[@LINE]]| if (I > ti
14 t -= 1; // HEADER: 8| [[@LINE]]| t -= 1;
15 } // HEADER: 20| [[@LINE]]| }
16 // HEADER: 2| [[@LINE]]|
17 return t; // HEADER: 2| [[@LINE]]| return t;
10 template T FOO::DoIt(T ti) { // HEADER: [[@LINE]]| 2|template
11 for (T I = 0; I < ti; I++) { // HEADER: [[@LINE]]| 22| for (T
12 t += I; // HEADER: [[@LINE]]| 20| t += I;
13 if (I > ti / 2) // HEADER: [[@LINE]]| 20| if (I > ti
14 t -= 1; // HEADER: [[@LINE]]| 8| t -= 1;
15 } // HEADER: [[@LINE]]| 20| }
16 // HEADER: [[@LINE]]| 2|
17 return t; // HEADER: [[@LINE]]| 2| return t;
1818 }
1919
2020 // To generate the binaries which correspond to this file, you must first
0 // Checks for reading various formats.
11
2 // CHECK: 100| [[@LINE+1]]|int main
2 // CHECK: [[@LINE+1]]| 100|int main
33 int main(int argc, const char *argv[]) {}
44
55 // RUN: llvm-profdata merge %S/Inputs/binary-formats.proftext -o %t.profdata
44
55 #define SIMPLE_OP \
66 ++x
7 // CHECK: | [[@LINE-2]]|#define SIMPLE_OP
8 // CHECK-NEXT: 2| [[@LINE-2]]| ++x
7 // CHECK: [[@LINE-2]]| |#define SIMPLE_OP
8 // CHECK-NEXT: [[@LINE-2]]| 2| ++x
99
1010 #define DO_SOMETHING \
1111 { \
1212 int x = 0; \
1313 SIMPLE_OP; \
1414 }
15 // CHECK: | [[@LINE-5]]|#define DO_SOMETHING
16 // CHECK-NEXT: 2| [[@LINE-5]]| {
17 // CHECK-NEXT: 2| [[@LINE-5]]| int x = 0;
18 // CHECK-NEXT: 2| [[@LINE-5]]| SIMPLE_OP;
19 // CHECK-NEXT: 2| [[@LINE-5]]| }
15 // CHECK: [[@LINE-5]]| |#define DO_SOMETHING
16 // CHECK-NEXT: [[@LINE-5]]| 2| {
17 // CHECK-NEXT: [[@LINE-5]]| 2| int x = 0;
18 // CHECK-NEXT: [[@LINE-5]]| 2| SIMPLE_OP;
19 // CHECK-NEXT: [[@LINE-5]]| 2| }
2020
21 int main() { // CHECK: 1| [[@LINE]]|int main() {
22 DO_SOMETHING; // CHECK-NEXT: 1| [[@LINE]]| DO_SOMETHING;
23 DO_SOMETHING; // CHECK-NEXT: 1| [[@LINE]]| DO_SOMETHING;
24 return 0; // CHECK-NEXT: 1| [[@LINE]]| return 0;
25 } // CHECK-NEXT: 1| [[@LINE]]|}
21 int main() { // CHECK: [[@LINE]]| 1|int main() {
22 DO_SOMETHING; // CHECK-NEXT: [[@LINE]]| 1| DO_SOMETHING;
23 DO_SOMETHING; // CHECK-NEXT: [[@LINE]]| 1| DO_SOMETHING;
24 return 0; // CHECK-NEXT: [[@LINE]]| 1| return 0;
25 } // CHECK-NEXT: [[@LINE]]| 1|}
1111 // RUN: llvm-cov show %S/Inputs/prefer_used_to_unused.covmapping -instr-profile %t.profdata -filename-equivalence %s | FileCheck %s
1212
1313 // Coverage data for this function has a non-zero hash value if it is used in the translation unit.
14 inline int sampleFunc(int A) { // CHECK: 1| [[@LINE]]|inline int sampleFunc(int A) {
15 if (A > 0) // CHECK-NEXT: 1| [[@LINE]]| if (A > 0)
16 return A; // CHECK-NEXT: 1| [[@LINE]]| return A;
17 return 0; // CHECK-NEXT: 0| [[@LINE]]| return 0;
18 } // CHECK-NEXT: 1| [[@LINE]]|}
14 inline int sampleFunc(int A) { // CHECK: [[@LINE]]| 1|inline int sampleFunc(int A) {
15 if (A > 0) // CHECK-NEXT: [[@LINE]]| 1| if (A > 0)
16 return A; // CHECK-NEXT: [[@LINE]]| 1| return A;
17 return 0; // CHECK-NEXT: [[@LINE]]| 0| return 0;
18 } // CHECK-NEXT: [[@LINE]]| 1|}
1919
2020 // The hash for this function is zero in both cases, either it is used in the translation unit or not.
21 inline int simpleFunc(int A) { // CHECK: 1| [[@LINE]]|inline int simpleFunc(int A) {
22 return A; // CHECK-NEXT: 1| [[@LINE]]| return A;
23 } // CHECK-NEXT: 1| [[@LINE]]|}
21 inline int simpleFunc(int A) { // CHECK: [[@LINE]]| 1|inline int simpleFunc(int A) {
22 return A; // CHECK-NEXT: [[@LINE]]| 1| return A;
23 } // CHECK-NEXT: [[@LINE]]| 1|}
0 // Basic handling of line counts.
11 // RUN: llvm-profdata merge %S/Inputs/lineExecutionCounts.proftext -o %t.profdata
22
3 // before any coverage // WHOLE-FILE: | [[@LINE]]|// before
4 // FILTER-NOT: | [[@LINE-1]]|// before
5 int main() { // TEXT: 161| [[@LINE]]|int main(
6 int x = 0; // TEXT: 161| [[@LINE]]| int x
7 // TEXT: 161| [[@LINE]]|
8 if (x) { // TEXT: 0| [[@LINE]]| if (x)
9 x = 0; // TEXT: 0| [[@LINE]]| x = 0
10 } else { // TEXT: 161| [[@LINE]]| } else
11 x = 1; // TEXT: 161| [[@LINE]]| x = 1
12 } // TEXT: 161| [[@LINE]]| }
13 // TEXT: 161| [[@LINE]]|
14 for (int i = 0; i < 100; ++i) { // TEXT: 16.2k| [[@LINE]]| for (
15 x = 1; // TEXT: 16.1k| [[@LINE]]| x = 1
16 } // TEXT: 16.1k| [[@LINE]]| }
17 // TEXT: 161| [[@LINE]]|
18 x = x < 10 ? x + 1 : x - 1; // TEXT: 161| [[@LINE]]| x =
19 x = x > 10 ? // TEXT: 161| [[@LINE]]| x =
20 x - 1: // TEXT: 0| [[@LINE]]| x
21 x + 1; // TEXT: 161| [[@LINE]]| x
22 // TEXT: 161| [[@LINE]]|
23 return 0; // TEXT: 161| [[@LINE]]| return
24 } // TEXT: 161| [[@LINE]]|}
25 // after coverage // WHOLE-FILE: | [[@LINE]]|// after
26 // FILTER-NOT: | [[@LINE-1]]|// after
3 // before any coverage // WHOLE-FILE: [[@LINE]]| |// before
4 // FILTER-NOT: [[@LINE-1]]| |// before
5 int main() { // TEXT: [[@LINE]]| 161|int main(
6 int x = 0; // TEXT: [[@LINE]]| 161| int x
7 // TEXT: [[@LINE]]| 161|
8 if (x) { // TEXT: [[@LINE]]| 0| if (x)
9 x = 0; // TEXT: [[@LINE]]| 0| x = 0
10 } else { // TEXT: [[@LINE]]| 161| } else
11 x = 1; // TEXT: [[@LINE]]| 161| x = 1
12 } // TEXT: [[@LINE]]| 161| }
13 // TEXT: [[@LINE]]| 161|
14 for (int i = 0; i < 100; ++i) { // TEXT: [[@LINE]]| 16.2k| for (
15 x = 1; // TEXT: [[@LINE]]| 16.1k| x = 1
16 } // TEXT: [[@LINE]]| 16.1k| }
17 // TEXT: [[@LINE]]| 161|
18 x = x < 10 ? x + 1 : x - 1; // TEXT: [[@LINE]]| 161| x =
19 x = x > 10 ? // TEXT: [[@LINE]]| 161| x =
20 x - 1: // TEXT: [[@LINE]]| 0| x
21 x + 1; // TEXT: [[@LINE]]| 161| x
22 // TEXT: [[@LINE]]| 161|
23 return 0; // TEXT: [[@LINE]]| 161| return
24 } // TEXT: [[@LINE]]| 161|}
25 // after coverage // WHOLE-FILE: [[@LINE]]| |// after
26 // FILTER-NOT: [[@LINE-1]]| |// after
2727
2828 // RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata -filename-equivalence %s | FileCheck -check-prefixes=TEXT,WHOLE-FILE %s
2929 // RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata -filename-equivalence -name=main %s | FileCheck -check-prefixes=TEXT,FILTER %s
4444 // RUN: FileCheck -check-prefixes=HTML,HTML-WHOLE-FILE -input-file %t.html.dir/coverage/tmp/showLineExecutionCounts.cpp.html %s
4545 // RUN: FileCheck -check-prefixes=HTML,HTML-FILTER -input-file %t.html.dir/functions.html %s
4646 //
47 // HTML-WHOLE-FILE:
[[@LINE-44]]
// before

                  
                
48 // HTML-FILTER-NOT:
[[@LINE-45]]
// before

                  
                
49 // HTML:
161
[[@LINE-44]]
int main() {

                  
                
50 // HTML:
161
[[@LINE-44]]
  int x = 0

                  
                
51 // HTML:
161
[[@LINE-44]]

                  
                
52 // HTML:
0
[[@LINE-44]]
  if (x) {

                  
                
53 // HTML:
0
[[@LINE-44]]

                  
                
54 // HTML:
161
[[@LINE-44]]
  }

                  
                
55 // HTML:
161
[[@LINE-44]]
    x = 1;

                  
                
56 // HTML:
161
[[@LINE-44]]
  }

                  
                
57 // HTML:
161
[[@LINE-44]]

                  
                
58 // HTML:
16.2k
[[@LINE-44]]
  for (int i = 0; i < 100; ++i)

                  
                
59 // HTML:
16.1k
[[@LINE-44]]
    x = 1;

                  
                
60 // HTML:
16.1k
[[@LINE-44]]
  }

                  
                
61 // HTML:
161
[[@LINE-44]]

                  
                
62 // HTML:
161
[[@LINE-44]]
  x = x < 10

                  
                
63 // HTML:
161
[[@LINE-44]]
  x = x > 10

                  
                
64 // HTML:
0
[[@LINE-44]]
        x - 1:

                  
                
65 // HTML:
161
[[@LINE-44]]
        x + 1;

                  
                
66 // HTML:
161
[[@LINE-44]]

                  
                
67 // HTML:
161
[[@LINE-44]]
  return 0;

                  
                
68 // HTML:
161
[[@LINE-44]]
}

                  
                
69 // HTML-WHOLE-FILE:
[[@LINE-44]]
// after

                  
                
70 // HTML-FILTER-NOT:
[[@LINE-45]]
// after
                  
                
47 // HTML-WHOLE-FILE:
[[@LINE-44]]
// before
                  
                
48 // HTML-FILTER-NOT:
[[@LINE-45]]
// before

                  
                
49 // HTML:
[[@LINE-44]]
161
int main() {

                  
                
50 // HTML:
[[@LINE-44]]
161
  int x = 0

                  
                
51 // HTML:
[[@LINE-44]]
161

                  
                
52 // HTML:
[[@LINE-44]]
0
  if (x) {

                  
                
53 // HTML:
[[@LINE-44]]
0

                  
                
54 // HTML:
[[@LINE-44]]
161
  }

                  
                
55 // HTML:
[[@LINE-44]]
161
    x = 1;

                  
                
56 // HTML:
[[@LINE-44]]
161
  }

                  
                
57 // HTML:
[[@LINE-44]]
161

                  
                
58 // HTML:
[[@LINE-44]]
16.2k
  for (int i = 0; i < 100; ++i)

                  
                
59 // HTML:
[[@LINE-44]]
16.1k
    x = 1;

                  
                
60 // HTML:
[[@LINE-44]]
16.1k
  }

                  
                
61 // HTML:
[[@LINE-44]]
161

                  
                
62 // HTML:
[[@LINE-44]]
161
  x = x < 10

                  
                
63 // HTML:
[[@LINE-44]]
161
  x = x > 10

                  
                
64 // HTML:
[[@LINE-44]]
0
        x - 1:

                  
                
65 // HTML:
[[@LINE-44]]
161
        x + 1;

                  
                
66 // HTML:
[[@LINE-44]]
161

                  
                
67 // HTML:
[[@LINE-44]]
161
  return 0;

                  
                
68 // HTML:
[[@LINE-44]]
161
}

                  
                
69 // HTML-WHOLE-FILE:
[[@LINE-44]]
// after

                  
                
70 // HTML-FILTER-NOT:
[[@LINE-45]]
// after

                  
                
7171
7272 // RUN: llvm-cov export %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata -name=main 2>/dev/null > %t.export.json
7373 // RUN: FileCheck -input-file %t.export.json %S/Inputs/lineExecutionCounts.json
0 // RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -filename-equivalence %s | FileCheck -check-prefixes=SHARED,ALL %s
11 // RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -filename-equivalence -name=_Z4funcIbEiT_ %s | FileCheck -check-prefixes=SHARED,FILTER %s
22
3 // before coverage // ALL: | [[@LINE]]|// before
4 // FILTER-NOT: | [[@LINE-1]]|// before
5 template // ALL: | [[@LINE]]|template
6 int func(T x) { // ALL-NEXT: 2| [[@LINE]]|int func(T x) {
7 if(x) // ALL-NEXT: 2| [[@LINE]]| if(x)
8 return 0; // ALL-NEXT: 1| [[@LINE]]| return 0;
9 else // ALL-NEXT: 2| [[@LINE]]| else
10 return 1; // ALL-NEXT: 1| [[@LINE]]| return 1;
11 int j = 1; // ALL-NEXT: 0| [[@LINE]]| int j = 1;
12 } // ALL-NEXT: 2| [[@LINE]]|}
3 // before coverage // ALL: [[@LINE]]| |// before
4 // FILTER-NOT:[[@LINE-1]]| |// before
5 template // ALL: [[@LINE]]| |template
6 int func(T x) { // ALL-NEXT: [[@LINE]]| 2|int func(T x) {
7 if(x) // ALL-NEXT: [[@LINE]]| 2| if(x)
8 return 0; // ALL-NEXT: [[@LINE]]| 1| return 0;
9 else // ALL-NEXT: [[@LINE]]| 2| else
10 return 1; // ALL-NEXT: [[@LINE]]| 1| return 1;
11 int j = 1; // ALL-NEXT: [[@LINE]]| 0| int j = 1;
12 } // ALL-NEXT: [[@LINE]]| 2|}
1313
1414 // SHARED: {{^ *(\| )?}}_Z4funcIbEiT_:
15 // SHARED-NEXT: 1| [[@LINE-9]]|int func(T x) {
16 // SHARED-NEXT: 1| [[@LINE-9]]| if(x)
17 // SHARED-NEXT: 1| [[@LINE-9]]| return 0;
18 // SHARED-NEXT: 1| [[@LINE-9]]| else
19 // SHARED-NEXT: 0| [[@LINE-9]]| return 1;
20 // SHARED-NEXT: 0| [[@LINE-9]]| int j = 1;
21 // SHARED-NEXT: 1| [[@LINE-9]]|}
15 // SHARED-NEXT: [[@LINE-9]]| 1|int func(T x) {
16 // SHARED-NEXT: [[@LINE-9]]| 1| if(x)
17 // SHARED-NEXT: [[@LINE-9]]| 1| return 0;
18 // SHARED-NEXT: [[@LINE-9]]| 1| else
19 // SHARED-NEXT: [[@LINE-9]]| 0| return 1;
20 // SHARED-NEXT: [[@LINE-9]]| 0| int j = 1;
21 // SHARED-NEXT: [[@LINE-9]]| 1|}
2222
2323 // ALL: {{^ *}}| _Z4funcIiEiT_:
2424 // FILTER-NOT: {{^ *(\| )?}} _Z4funcIiEiT_:
25 // ALL-NEXT: 1| [[@LINE-19]]|int func(T x) {
26 // ALL-NEXT: 1| [[@LINE-19]]| if(x)
27 // ALL-NEXT: 0| [[@LINE-19]]| return 0;
28 // ALL-NEXT: 1| [[@LINE-19]]| else
29 // ALL-NEXT: 1| [[@LINE-19]]| return 1;
30 // ALL-NEXT: 0| [[@LINE-19]]| int j = 1;
31 // ALL-NEXT: 1| [[@LINE-19]]|}
25 // ALL-NEXT: [[@LINE-19]]| 1|int func(T x) {
26 // ALL-NEXT: [[@LINE-19]]| 1| if(x)
27 // ALL-NEXT: [[@LINE-19]]| 0| return 0;
28 // ALL-NEXT: [[@LINE-19]]| 1| else
29 // ALL-NEXT: [[@LINE-19]]| 1| return 1;
30 // ALL-NEXT: [[@LINE-19]]| 0| int j = 1;
31 // ALL-NEXT: [[@LINE-19]]| 1|}
3232
33 int main() { // ALL: 1| [[@LINE]]|int main() {
34 func(0); // ALL-NEXT: 1| [[@LINE]]| func(0);
35 func(true); // ALL-NEXT: 1| [[@LINE]]| func(true);
36 return 0; // ALL-NEXT: 1| [[@LINE]]| return 0;
37 } // ALL-NEXT: 1| [[@LINE]]|}
38 // after coverage // ALL-NEXT: | [[@LINE]]|// after
39 // FILTER-NOT: | [[@LINE-1]]|// after
33 int main() { // ALL: [[@LINE]]| 1|int main() {
34 func(0); // ALL-NEXT: [[@LINE]]| 1| func(0);
35 func(true); // ALL-NEXT: [[@LINE]]| 1| func(true);
36 return 0; // ALL-NEXT: [[@LINE]]| 1| return 0;
37 } // ALL-NEXT: [[@LINE]]| 1|}
38 // after coverage // ALL-NEXT: [[@LINE]]| |// after
39 // FILTER-NOT:[[@LINE-1]]| |// after
4040
4141 // Test html output.
4242 // RUN: llvm-cov show %S/Inputs/templateInstantiations.covmapping -instr-profile %S/Inputs/templateInstantiations.profdata -filename-equivalence %s -format html -o %t.html.dir
4444 // RUN: FileCheck -check-prefixes=HTML-SHARED,HTML-ALL -input-file=%t.html.dir/coverage/tmp/showTemplateInstantiations.cpp.html %s
4545 // RUN: FileCheck -check-prefixes=HTML-SHARED,HTML-FILTER -input-file=%t.html.dir/functions.html %s
4646
47 // HTML-ALL:
[[@LINE-44]]
// before

                  
                
48 // HTML-FILTER-NOT:
[[@LINE-45]]
// before

                  
                
49 // HTML-ALL:
[[@LINE-44]]
template<typename T>

                  
                
50 // HTML-ALL:
2
[[@LINE-44]]
int func(T x) {

                  
                
51 // HTML-ALL:
2
[[@LINE-44]]
  if(x)

                  
                
52 // HTML-ALL:
1
[[@LINE-44]]
    ret

                  
                
53 // HTML-ALL:
2
[[@LINE-44]]
  else

                  
                
54 // HTML-ALL:
1
[[@LINE-44]]
    ret

                  
                
55 // HTML-ALL:
0
[[@LINE-44]]

                  
                
56 // HTML-ALL:
2
[[@LINE-44]]
}
                  
                
47 // HTML-ALL:
[[@LINE-44]]
// before
                  
                
48 // HTML-FILTER-NOT:
[[@LINE-45]]
// before

                  
                
49 // HTML-ALL:
[[@LINE-44]]
template<typename T>

                  
                
50 // HTML-ALL:
[[@LINE-44]]
2
int func(T x) {

                  
                
51 // HTML-ALL:
[[@LINE-44]]
2
  if(x)

                  
                
52 // HTML-ALL:
[[@LINE-44]]
1
    ret

                  
                
53 // HTML-ALL:
[[@LINE-44]]
2
  else

                  
                
54 // HTML-ALL:
[[@LINE-44]]
1
    ret

                  
                
55 // HTML-ALL:
[[@LINE-44]]
0

                  
                
56 // HTML-ALL:
[[@LINE-44]]
2
}

                  
                
5757
5858 // HTML-SHARED:
_Z4funcIbEiT_
59 // HTML-SHARED:
1
[[@LINE-53]]
int func(T x) {

                  
                
60 // HTML-SHARED:
1
[[@LINE-53]]
  if(x)

                  
                
61 // HTML-SHARED:
1
[[@LINE-53]]
    ret

                  
                
62 // HTML-SHARED:
1
[[@LINE-53]]
  else

                  
                
63 // HTML-SHARED:
0
[[@LINE-53]]

                  
                
64 // HTML-SHARED:
0
[[@LINE-53]]

                  
                
65 // HTML-SHARED:
1
[[@LINE-53]]
}
                  
                
59 // HTML-SHARED:
[[@LINE-53]]
1
int func(T x) {
                  
                
60 // HTML-SHARED:
[[@LINE-53]]
1
  if(x)

                  
                
61 // HTML-SHARED:
[[@LINE-53]]
1
    ret

                  
                
62 // HTML-SHARED:
[[@LINE-53]]
1
  else

                  
                
63 // HTML-SHARED:
[[@LINE-53]]
0

                  
                
64 // HTML-SHARED:
[[@LINE-53]]
0

                  
                
65 // HTML-SHARED:
[[@LINE-53]]
1
}

                  
                
6666
6767 // HTML-ALL:
_Z4funcIiEiT_
6868 // HTML-FILTER-NOT:
_Z4funcIiEiT_
69 // HTML-ALL:
1
[[@LINE-63]]
int func(T x) {

                  
                
70 // HTML-ALL:
1
[[@LINE-63]]
  if(x)

                  
                
71 // HTML-ALL:
0
[[@LINE-63]]

                  
                
72 // HTML-ALL:
1
[[@LINE-63]]
  else

                  
                
73 // HTML-ALL:
1
[[@LINE-63]]
    ret

                  
                
74 // HTML-ALL:
0
[[@LINE-63]]

                  
                
75 // HTML-ALL:
1
[[@LINE-63]]
}
                  
                
69 // HTML-ALL:
[[@LINE-63]]
1
int func(T x) {
                  
                
70 // HTML-ALL:
[[@LINE-63]]
1
  if(x)

                  
                
71 // HTML-ALL:
[[@LINE-63]]
0

                  
                
72 // HTML-ALL:
[[@LINE-63]]
1
  else

                  
                
73 // HTML-ALL:
[[@LINE-63]]
1
    ret

                  
                
74 // HTML-ALL:
[[@LINE-63]]
0

                  
                
75 // HTML-ALL:
[[@LINE-63]]
1
}

                  
                
7676
77 // HTML-ALL: td class='covered-line'>
1
[[@LINE-44]]
int main() {

                  
                
78 // HTML-ALL:
1
[[@LINE-44]]
  func<int>(0);

                  
                
79 // HTML-ALL:
1
[[@LINE-44]]
  func<bool>(true);

                  
                
80 // HTML-ALL:
1
[[@LINE-44]]
  return 0;

                  
                
81 // HTML-ALL:
1
[[@LINE-44]]
}
                  
                
77 // HTML-ALL:
[[@LINE-44]]
1
int main() {
                  
                
78 // HTML-ALL:
[[@LINE-44]]
1
  func<int>(0);

                  
                
79 // HTML-ALL:
[[@LINE-44]]
1
  func<bool>(true);

                  
                
80 // HTML-ALL:
[[@LINE-44]]
1
  return 0;

                  
                
81 // HTML-ALL:
[[@LINE-44]]
1
}

                  
                
8282
83 // HTML-ALL:
[[@LINE-45]]
// after

                  
                
84 // HTML-FILTER-NOT:
[[@LINE-46]]
>
// after
                  
                
83 // HTML-ALL:
[[@LINE-45]]
>
// after
                  
                
84 // HTML-FILTER-NOT:
[[@LINE-46]]
// after

                  
                
0 // The coverage reader should be able to handle universal binaries
11
2 // CHECK: 100| [[@LINE+1]]|int main
2 // CHECK: [[@LINE+1]]| 100|int main
33 int main(int argc, const char *argv[]) {}
44
55 // RUN: llvm-profdata merge %S/Inputs/universal-binary.proftext -o %t.profdata
181181 LineCount.addRegionStartCount(S->Count);
182182
183183 renderLinePrefix(OS, ViewDepth);
184 if (getOptions().ShowLineNumbers)
185 renderLineNumberColumn(OS, LI.line_number());
184186 if (getOptions().ShowLineStats)
185187 renderLineCoverageColumn(OS, LineCount);
186 if (getOptions().ShowLineNumbers)
187 renderLineNumberColumn(OS, LI.line_number());
188188
189189 // If there are expansion subviews, we want to highlight the first one.
190190 unsigned ExpansionColumn = 0;