summaryrefslogtreecommitdiffstats
path: root/clang/test/CoverageMapping/md.cpp
diff options
context:
space:
mode:
authorEli Friedman <efriedma@codeaurora.org>2017-08-08 20:10:14 +0000
committerEli Friedman <efriedma@codeaurora.org>2017-08-08 20:10:14 +0000
commit181dfe4c92ad2671a4ff5c2d91d927dd5a9958b8 (patch)
tree72fb63de58b20761fd03f90d5e8617cfc1e6d071 /clang/test/CoverageMapping/md.cpp
parent8a813cf646069b88b61ef0b1177327826b0d9ec6 (diff)
downloadbcm5719-llvm-181dfe4c92ad2671a4ff5c2d91d927dd5a9958b8.tar.gz
bcm5719-llvm-181dfe4c92ad2671a4ff5c2d91d927dd5a9958b8.zip
[coverage] Special-case calls to noreturn functions.
The code after a noreturn call doesn't execute. The pattern in the testcase is pretty common in LLVM (a switch with a default case that calls llvm_unreachable). The original version of this patch was reverted in r309995 due to a crash. This version includes a fix for that crash (testcase in test/CoverageMapping/md.cpp). Differential Revision: https://reviews.llvm.org/D36250 llvm-svn: 310406
Diffstat (limited to 'clang/test/CoverageMapping/md.cpp')
-rw-r--r--clang/test/CoverageMapping/md.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/CoverageMapping/md.cpp b/clang/test/CoverageMapping/md.cpp
index 20c696c7dfb..5f2b2d61224 100644
--- a/clang/test/CoverageMapping/md.cpp
+++ b/clang/test/CoverageMapping/md.cpp
@@ -27,6 +27,17 @@ void foo(MD i) {
#include "Inputs/md.def"
}
+// CHECK: bar
+// CHECK-NEXT: File 0, [[@LINE+3]]:12 -> [[@LINE+8]]:2 = #0
+bool isVal1();
+bool isVal2();
+bool bar() {
+ #define HANDLE_MD(X) is##X() ||
+ return
+#include "Inputs/md.def"
+ 0;
+}
+
int main(int argc, const char *argv[]) {
foo(MD::Val1);
return 0;
OpenPOWER on IntegriCloud