summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2018-05-11 01:09:39 +0000
committerKostya Serebryany <kcc@google.com>2018-05-11 01:09:39 +0000
commita2759327fdc80ab51e6706e0e3a92d0c23a066ca (patch)
tree6d27a027efd76ab4fc656f7c5fcc93d3b3dd57dd /llvm/lib
parenta092e184cf955448d6015692ee9d9fa8dea6a006 (diff)
downloadbcm5719-llvm-a2759327fdc80ab51e6706e0e3a92d0c23a066ca.tar.gz
bcm5719-llvm-a2759327fdc80ab51e6706e0e3a92d0c23a066ca.zip
[sanitizer-coverage] don't instrument a function if it's entry block ends with 'unreachable'
llvm-svn: 332072
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
index 4f0abc6bb78..a19cd6d2332 100644
--- a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
+++ b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
@@ -480,6 +480,8 @@ bool SanitizerCoverageModule::runOnFunction(Function &F) {
if (F.getName() == "__local_stdio_printf_options" ||
F.getName() == "__local_stdio_scanf_options")
return false;
+ if (isa<UnreachableInst>(F.getEntryBlock().getTerminator()))
+ return false;
// Don't instrument functions using SEH for now. Splitting basic blocks like
// we do for coverage breaks WinEHPrepare.
// FIXME: Remove this when SEH no longer uses landingpad pattern matching.
OpenPOWER on IntegriCloud