summaryrefslogtreecommitdiffstats
path: root/clang/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
commit341bf4299182938ba021acfac82b8e7845a65f1f (patch)
tree1f93d70eb1d7b2e459a7b1b47b9b5985fd8d7cb7 /clang/test/CoverageMapping
parente5f06a81a870a6c3e1caa5203d9fceed45c1d0e1 (diff)
downloadbcm5719-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.cpp22
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);
OpenPOWER on IntegriCloud