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 | 341bf4299182938ba021acfac82b8e7845a65f1f (patch) | |
| tree | 1f93d70eb1d7b2e459a7b1b47b9b5985fd8d7cb7 /clang/test/CoverageMapping | |
| parent | e5f06a81a870a6c3e1caa5203d9fceed45c1d0e1 (diff) | |
| download | bcm5719-llvm-341bf4299182938ba021acfac82b8e7845a65f1f.tar.gz bcm5719-llvm-341bf4299182938ba021acfac82b8e7845a65f1f.zip | |
[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.
llvm-svn: 315982
Diffstat (limited to 'clang/test/CoverageMapping')
| -rw-r--r-- | clang/test/CoverageMapping/deferred-region.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/clang/test/CoverageMapping/deferred-region.cpp b/clang/test/CoverageMapping/deferred-region.cpp index 743b635a907..3504588a6c3 100644 --- a/clang/test/CoverageMapping/deferred-region.cpp +++ b/clang/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); |

