summaryrefslogtreecommitdiffstats
path: root/clang/test/CoverageMapping/break.c
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2018-02-16 07:59:43 +0000
committerVedant Kumar <vsk@apple.com>2018-02-16 07:59:43 +0000
commit3e2ae49a25f80a24e6cb5efdcb9c4caf42ba95ae (patch)
tree28f11e3cf726a4a39c591f8efe39951988d21922 /clang/test/CoverageMapping/break.c
parent2e4b838c06cc6a5f659ec75f79b88bd702a2125f (diff)
downloadbcm5719-llvm-3e2ae49a25f80a24e6cb5efdcb9c4caf42ba95ae.tar.gz
bcm5719-llvm-3e2ae49a25f80a24e6cb5efdcb9c4caf42ba95ae.zip
[Coverage] Handle break/continue outside of loop bodies
Teach the coverage mapping logic to handle break or continue statements within for loop increments. Fixes llvm.org/PR36406. llvm-svn: 325319
Diffstat (limited to 'clang/test/CoverageMapping/break.c')
-rw-r--r--clang/test/CoverageMapping/break.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/CoverageMapping/break.c b/clang/test/CoverageMapping/break.c
index d42c1bd082d..08461d7ed2d 100644
--- a/clang/test/CoverageMapping/break.c
+++ b/clang/test/CoverageMapping/break.c
@@ -31,3 +31,14 @@ int main() { // CHECK: File 0, [[@LINE]]:12 -> {{[0-9]+}}:2 = #0
++cnt;
}
}
+
+// CHECK-LABEL: break_continue_in_increment:
+// CHECK: [[@LINE+6]]:11 -> [[@LINE+6]]:45 = #1
+// CHECK: [[@LINE+5]]:18 -> [[@LINE+5]]:19 = #1
+// CHECK: [[@LINE+4]]:21 -> [[@LINE+4]]:26 = #2
+// CHECK: [[@LINE+3]]:33 -> [[@LINE+3]]:41 = (#1 - #2)
+// CHECK: [[@LINE+3]]:5 -> [[@LINE+3]]:6 = #1
+void break_continue_in_increment(int x) {
+ for (;; ({ if (x) break; else continue; }))
+ ;
+}
OpenPOWER on IntegriCloud