aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
diff options
context:
space:
mode:
authorMike Aizatsky <aizatsky@chromium.org>2016-04-01 18:13:19 +0000
committerMike Aizatsky <aizatsky@chromium.org>2016-04-01 18:13:19 +0000
commit01c0f8d8a37e01f941522c8ebe66d17f28104172 (patch)
tree93fe33d54270ec9fb9721e385abdfccbfe99a1e2 /llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
parentd3e3d48cb9d430f46406403767cad4aa0f490ec4 (diff)
downloadllvm-01c0f8d8a37e01f941522c8ebe66d17f28104172.zip
llvm-01c0f8d8a37e01f941522c8ebe66d17f28104172.tar.gz
llvm-01c0f8d8a37e01f941522c8ebe66d17f28104172.tar.bz2
[sancov] save entry block from pruning (it is always full dominator)
llvm-svn: 265168
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp')
-rw-r--r--llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
index 12fdfbd..1fac003 100644
--- a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
+++ b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
@@ -342,9 +342,9 @@ static bool isFullPostDominator(const BasicBlock *BB,
return true;
}
-static bool shouldInstrumentBlock(const BasicBlock *BB, const DominatorTree *DT,
+static bool shouldInstrumentBlock(const Function& F, const BasicBlock *BB, const DominatorTree *DT,
const PostDominatorTree *PDT) {
- if (!ClPruneBlocks)
+ if (!ClPruneBlocks || &F.getEntryBlock() == BB)
return true;
return !(isFullDominator(BB, DT) || isFullPostDominator(BB, PDT));
@@ -374,7 +374,7 @@ bool SanitizerCoverageModule::runOnFunction(Function &F) {
&getAnalysis<PostDominatorTreeWrapperPass>(F).getPostDomTree();
for (auto &BB : F) {
- if (shouldInstrumentBlock(&BB, DT, PDT))
+ if (shouldInstrumentBlock(F, &BB, DT, PDT))
BlocksToInstrument.push_back(&BB);
for (auto &Inst : BB) {
if (Options.IndirectCalls) {