diff options
author | Vedant Kumar <vsk@apple.com> | 2018-02-16 07:59:43 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2018-02-16 07:59:43 +0000 |
commit | 3e2ae49a25f80a24e6cb5efdcb9c4caf42ba95ae (patch) | |
tree | 28f11e3cf726a4a39c591f8efe39951988d21922 /clang/test/CoverageMapping/break.c | |
parent | 2e4b838c06cc6a5f659ec75f79b88bd702a2125f (diff) | |
download | bcm5719-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.c | 11 |
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; })) + ; +} |