diff options
author | Vedant Kumar <vsk@apple.com> | 2017-10-17 07:47:39 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2017-10-17 07:47:39 +0000 |
commit | fe8249cb5c936a6f1c0990923044319d283a9624 (patch) | |
tree | 5a20229554bc75a324af673dd3b6d5b3a9f19b78 /test/CoverageMapping | |
parent | 762d1e77cbcec32f272b58e412d4bca839626f95 (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.cpp | 22 |
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); |