summaryrefslogtreecommitdiff
path: root/test/CoverageMapping
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2017-10-17 07:47:39 +0000
committerVedant Kumar <vsk@apple.com>2017-10-17 07:47:39 +0000
commitfe8249cb5c936a6f1c0990923044319d283a9624 (patch)
tree5a20229554bc75a324af673dd3b6d5b3a9f19b78 /test/CoverageMapping
parent762d1e77cbcec32f272b58e412d4bca839626f95 (diff)
[Coverage] Discard deferred region in closing if-else
A trailing deferred region isn't necessary in a function that ends with this pattern: ... else { ... return; } Special-case this pattern so that the closing curly brace of the function isn't marked as uncovered. This issue came up in PR34962. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@315982 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CoverageMapping')
-rw-r--r--test/CoverageMapping/deferred-region.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/test/CoverageMapping/deferred-region.cpp b/test/CoverageMapping/deferred-region.cpp
index 743b635a90..3504588a6c 100644
--- a/test/CoverageMapping/deferred-region.cpp
+++ b/test/CoverageMapping/deferred-region.cpp
@@ -31,11 +31,28 @@ void baz() { // CHECK: [[@LINE]]:12 -> [[@LINE+2]]:2
// CHECK-LABEL: _Z3mazv:
void maz() {
if (true)
- return; // CHECK: Gap,File 0, [[@LINE]]:11 -> 36:3 = (#0 - #1)
+ return; // CHECK: Gap,File 0, [[@LINE]]:11 -> [[@LINE+2]]:3 = (#0 - #1)
return; // CHECK-NOT: Gap
}
+// CHECK-LABEL: _Z4maazv:
+void maaz() {
+ if (true)
+ return; // CHECK: Gap,File 0, [[@LINE]]:11
+ else
+ return; // CHECK-NOT: Gap,File 0, [[@LINE]]
+}
+
+// CHECK-LABEL: _Z5maaazv:
+void maaaz() {
+ if (true) {
+ return;
+ } else { // CHECK: Gap,File 0, [[@LINE]]:4 -> [[@LINE]]:10
+ return; // CHECK-NOT: Gap,File 0, [[@LINE]]
+ }
+}
+
// CHECK-LABEL: _Z3bari:
void bar(int x) {
IF (x)
@@ -158,6 +175,9 @@ int main() {
foo(1);
fooo(0);
fooo(1);
+ maz();
+ maaz();
+ maaaz();
baz();
bar(0);
bar(1);