1
1
// RUN: %clang_cc1 -mllvm -emptyline-comment-coverage=false -mllvm -enable-single-byte-coverage=true -fprofile-instrument=clang -fcoverage-mapping -dump-coverage-mapping -emit-llvm-only -main-file-name single-byte-counters.cpp %s | FileCheck %s
2
2
3
3
// CHECK: testIf
4
- int testIf (int x) { // CHECK-NEXT: File 0, [[@LINE]]:19 -> [[@LINE+7 ]]:2 = [[C00:#0]]
4
+ int testIf (int x) { // CHECK-NEXT: File 0, [[@LINE]]:19 -> [[@LINE+8 ]]:2 = [[C00:#0]]
5
5
int result = 0 ;
6
6
if (x == 0 ) // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:13 = [[C00]]
7
- // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:14 -> [[@LINE+1]]:5 = [[C0T:#1]]
7
+
8
+ // CHECK-NEXT: Gap,File 0, [[@LINE-2]]:14 -> [[@LINE+1]]:5 = [[C0T:#1]]
8
9
result = -1 ; // CHECK-NEXT: File 0, [[@LINE]]:5 -> [[@LINE]]:16 = [[C0T]]
9
10
10
11
return result; // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE]]:16 = [[C0E:#2]]
11
12
}
12
13
13
14
// CHECK-NEXT: testIfElse
14
- int testIfElse (int x) { // CHECK-NEXT: File 0, [[@LINE]]:23 -> [[@LINE+8 ]]:2 = [[C10:#0]]
15
+ int testIfElse (int x) { // CHECK-NEXT: File 0, [[@LINE]]:23 -> [[@LINE+9 ]]:2 = [[C10:#0]]
15
16
int result = 0 ;
16
17
if (x < 0 ) // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:12 = [[C10]]
17
- // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:13 -> [[@LINE+1]]:5 = [[C1T:#1]]
18
+
19
+ // CHECK-NEXT: Gap,File 0, [[@LINE-2]]:13 -> [[@LINE+1]]:5 = [[C1T:#1]]
18
20
result = 0 ; // CHECK-NEXT: File 0, [[@LINE]]:5 -> [[@LINE]]:15 = [[C1T]]
19
21
else // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:16 -> [[@LINE+1]]:5 = [[C1F:#2]]
20
22
result = x * x; // CHECK-NEXT: File 0, [[@LINE]]:5 -> [[@LINE]]:19 = [[C1F]]
21
23
return result; // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE]]:16 = [[C1E:#3]]
22
24
}
23
25
24
26
// CHECK-NEXT: testIfElseReturn
25
- int testIfElseReturn (int x) { // CHECK-NEXT: File 0, [[@LINE]]:29 -> [[@LINE+9 ]]:2 = [[C20:#0]]
27
+ int testIfElseReturn (int x) { // CHECK-NEXT: File 0, [[@LINE]]:29 -> [[@LINE+10 ]]:2 = [[C20:#0]]
26
28
int result = 0 ;
27
29
if (x > 0 ) // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:12 = [[C20]]
28
- // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:13 -> [[@LINE+1]]:5 = [[C2T:#1]]
30
+
31
+ // CHECK-NEXT: Gap,File 0, [[@LINE-2]]:13 -> [[@LINE+1]]:5 = [[C2T:#1]]
29
32
result = x * x; // CHECK-NEXT: File 0, [[@LINE]]:5 -> [[@LINE]]:19 = [[C2T]]
30
33
else // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:20 -> [[@LINE+1]]:5 = [[C2F:#2]]
31
34
return 0 ; // CHECK-NEXT: File 0, [[@LINE]]:5 -> [[@LINE]]:13 = [[C2F]]
@@ -34,10 +37,11 @@ int testIfElseReturn(int x) { // CHECK-NEXT: File 0, [[@LINE]]:29 -> [[@LINE+9]]
34
37
}
35
38
36
39
// CHECK-NEXT: testIfBothReturn
37
- int testIfBothReturn (int x) { // CHECK-NEXT: File 0, [[@LINE]]:29 -> [[@LINE+9 ]]:2 = [[C20:#0]]
40
+ int testIfBothReturn (int x) { // CHECK-NEXT: File 0, [[@LINE]]:29 -> [[@LINE+10 ]]:2 = [[C20:#0]]
38
41
int result = 0 ;
39
42
if (x > 0 ) // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:12 = [[C20]]
40
- // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:13 -> [[@LINE+1]]:5 = [[C2T:#1]]
43
+
44
+ // CHECK-NEXT: Gap,File 0, [[@LINE-2]]:13 -> [[@LINE+1]]:5 = [[C2T:#1]]
41
45
return 42 ; // CHECK-NEXT: File 0, [[@LINE]]:5 -> [[@LINE]]:14 = [[C2T]]
42
46
else // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:15 -> [[@LINE+1]]:5 = [[C2F:#2]]
43
47
return 0 ; // CHECK-NEXT: File 0, [[@LINE]]:5 -> [[@LINE]]:13 = [[C2F]]
@@ -46,32 +50,36 @@ int testIfBothReturn(int x) { // CHECK-NEXT: File 0, [[@LINE]]:29 -> [[@LINE+9]]
46
50
}
47
51
48
52
// CHECK-NEXT: testSwitch
49
- int testSwitch (int x) { // CHECK-NEXT: File 0, [[@LINE]]:23 -> [[@LINE+17 ]]:2 = [[C30:#0]]
53
+ int testSwitch (int x) { // CHECK-NEXT: File 0, [[@LINE]]:23 -> [[@LINE+20 ]]:2 = [[C30:#0]]
50
54
int result;
51
55
switch (x) {
52
- // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:14 -> [[@LINE+10]]:15 = 0
53
- case 1 : // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE+2]]:10 = [[C31:#2]]
56
+ // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:14 -> [[@LINE+13]]:15 = 0
57
+ case 1 : // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE+3]]:10 = [[C31:#2]]
58
+
54
59
result = 1 ;
55
60
break ;
56
61
// CHECK-NEXT: Gap,File 0, [[@LINE-1]]:11 -> [[@LINE+1]]:3 = 0
57
- case 2 : // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE+2]]:10 = [[C32:#3]]
62
+ case 2 : // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE+3]]:10 = [[C32:#3]]
63
+
58
64
result = 2 ;
59
65
break ;
60
66
// CHECK-NEXT: Gap,File 0, [[@LINE-1]]:11 -> [[@LINE+1]]:3 = 0
61
- default : // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE+1]]:15 = [[C3D:#4]]
67
+ default : // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE+2]]:15 = [[C3D:#4]]
68
+
62
69
result = 0 ;
63
70
}
64
71
// CHECK-NEXT: Gap,File 0, [[@LINE-1]]:4 -> [[@LINE+1]]:3 = [[C3E:#1]]
65
72
return result; // CHECK-NEXT: File 0, [[@LINE]]:3 -> [[@LINE]]:16 = [[C3E]]
66
73
}
67
74
68
75
// CHECK-NEXT: testWhile
69
- int testWhile () { // CHECK-NEXT: File 0, [[@LINE]]:17 -> [[@LINE+11 ]]:2 = [[C40:#0]]
76
+ int testWhile () { // CHECK-NEXT: File 0, [[@LINE]]:17 -> [[@LINE+12 ]]:2 = [[C40:#0]]
70
77
int i = 0 ;
71
78
int sum = 0 ;
72
79
while (i < 10 ) { // CHECK-NEXT: File 0, [[@LINE]]:10 -> [[@LINE]]:16 = [[C4C:#1]]
73
- // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:17 -> [[@LINE-1]]:18 = [[C4T:#2]]
74
- // CHECK-NEXT: File 0, [[@LINE-2]]:18 -> [[@LINE+3]]:4 = [[C4T]]
80
+
81
+ // CHECK-NEXT: Gap,File 0, [[@LINE-2]]:17 -> [[@LINE-2]]:18 = [[C4T:#2]]
82
+ // CHECK-NEXT: File 0, [[@LINE-3]]:18 -> [[@LINE+3]]:4 = [[C4T]]
75
83
sum += i;
76
84
i++;
77
85
}
@@ -80,19 +88,22 @@ int testWhile() { // CHECK-NEXT: File 0, [[@LINE]]:17 -> [[@LINE+11]]:2 =
80
88
}
81
89
82
90
// CHECK-NEXT: testContinueBreak
83
- int testContinueBreak () { // CHECK-NEXT: File 0, [[@LINE]]:25 -> [[@LINE+20 ]]:2 = #0
91
+ int testContinueBreak () { // CHECK-NEXT: File 0, [[@LINE]]:25 -> [[@LINE+23 ]]:2 = #0
84
92
int i = 0 ;
85
93
int sum = 0 ;
86
94
while (i < 10 ) { // CHECK-NEXT: File 0, [[@LINE]]:10 -> [[@LINE]]:16 = #1
87
- // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:17 -> [[@LINE-1]]:18 = [[C5B:#2]]
88
- // CHECK-NEXT: File 0, [[@LINE-2]]:18 -> [[@LINE+12]]:4 = [[C5B]]
95
+
96
+ // CHECK-NEXT: Gap,File 0, [[@LINE-2]]:17 -> [[@LINE-2]]:18 = [[C5B:#2]]
97
+ // CHECK-NEXT: File 0, [[@LINE-3]]:18 -> [[@LINE+14]]:4 = [[C5B]]
89
98
if (i == 4 ) // CHECK-NEXT: File 0, [[@LINE]]:9 -> [[@LINE]]:15 = [[C5B]]
90
- // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:16 -> [[@LINE+1]]:7 = [[C5T:#4]]
99
+
100
+ // CHECK-NEXT: Gap,File 0, [[@LINE-2]]:16 -> [[@LINE+1]]:7 = [[C5T:#4]]
91
101
continue ; // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:15 = [[C5T]]
92
102
// CHECK-NEXT: Gap,File 0, [[@LINE-1]]:16 -> [[@LINE+2]]:5 = [[C5F:#5]]
93
- // CHECK-NEXT: File 0, [[@LINE+1]]:5 -> [[@LINE+7 ]]:4 = [[C5F]]
103
+ // CHECK-NEXT: File 0, [[@LINE+1]]:5 -> [[@LINE+8 ]]:4 = [[C5F]]
94
104
if (i == 5 ) // CHECK-NEXT: File 0, [[@LINE]]:9 -> [[@LINE]]:15 = [[C5F]]
95
- // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:16 -> [[@LINE+1]]:7 = [[C5T1:#6]]
105
+
106
+ // CHECK-NEXT: Gap,File 0, [[@LINE-2]]:16 -> [[@LINE+1]]:7 = [[C5T1:#6]]
96
107
break ; // CHECK-NEXT: File 0, [[@LINE]]:7 -> [[@LINE]]:12 = [[C5T1]]
97
108
// CHECK-NEXT: Gap,File 0, [[@LINE-1]]:13 -> [[@LINE+1]]:5 = [[C5F1:#7]]
98
109
sum += i; // CHECK-NEXT: File 0, [[@LINE]]:5 -> [[@LINE+2]]:4 = [[C5F1]]
@@ -103,10 +114,11 @@ int testContinueBreak() { // CHECK-NEXT: File 0, [[@LINE]]:25 -> [[@LINE+20]]:2
103
114
}
104
115
105
116
// CHECK-NEXT: testFor
106
- int testFor () { // CHECK-NEXT: File 0, [[@LINE]]:15 -> [[@LINE+12 ]]:2 = [[C60:#0]]
117
+ int testFor () { // CHECK-NEXT: File 0, [[@LINE]]:15 -> [[@LINE+13 ]]:2 = [[C60:#0]]
107
118
int i;
108
119
int sum = 0 ;
109
- // CHECK-NEXT: File 0, [[@LINE+2]]:19 -> [[@LINE+2]]:25 = [[C61:#1]]
120
+ // CHECK-NEXT: File 0, [[@LINE+3]]:19 -> [[@LINE+3]]:25 = [[C61:#1]]
121
+
110
122
// CHECK-NEXT: File 0, [[@LINE+1]]:27 -> [[@LINE+1]]:30 = [[C6C:#2]]
111
123
for (int i = 0 ; i < 10 ; i++) {
112
124
// CHECK-NEXT: Gap,File 0, [[@LINE-1]]:31 -> [[@LINE-1]]:32 = [[C6B:#3]]
@@ -144,10 +156,11 @@ int testDo() { // CHECK-NEXT: File 0, [[@LINE]]:14 -> [[@LINE+9]]:2 = [
144
156
}
145
157
146
158
// CHECK-NEXT: testConditional
147
- int testConditional (int x) { // CHECK-NEXT: File 0, [[@LINE]]:28 -> [[@LINE+6 ]]:2 = [[C90:#0]]
159
+ int testConditional (int x) { // CHECK-NEXT: File 0, [[@LINE]]:28 -> [[@LINE+7 ]]:2 = [[C90:#0]]
148
160
int result = (x > 0 ) ? 1 : -1 ; // CHECK-NEXT: File 0, [[@LINE]]:15 -> [[@LINE]]:22 = [[C90]]
149
- // CHECK-NEXT: Gap,File 0, [[@LINE-1]]:24 -> [[@LINE-1]]:25 = [[C9T:#2]]
150
- // CHECK-NEXT: File 0, [[@LINE-2]]:25 -> [[@LINE-2]]:26 = [[C9T]]
151
- // CHECK-NEXT: File 0, [[@LINE-3]]:29 -> [[@LINE-3]]:31 = [[C9F:#3]]
161
+
162
+ // CHECK-NEXT: Gap,File 0, [[@LINE-2]]:24 -> [[@LINE-2]]:25 = [[C9T:#2]]
163
+ // CHECK-NEXT: File 0, [[@LINE-3]]:25 -> [[@LINE-3]]:26 = [[C9T]]
164
+ // CHECK-NEXT: File 0, [[@LINE-4]]:29 -> [[@LINE-4]]:31 = [[C9F:#3]]
152
165
return result; // CHECK-NEXT: File 0, [[@LINE]]:2 -> [[@LINE]]:15 = [[C9E:#1]]
153
166
}
0 commit comments