diff options
author | Mike Aizatsky <aizatsky@chromium.org> | 2016-04-01 18:13:19 +0000 |
---|---|---|
committer | Mike Aizatsky <aizatsky@chromium.org> | 2016-04-01 18:13:19 +0000 |
commit | 01c0f8d8a37e01f941522c8ebe66d17f28104172 (patch) | |
tree | 93fe33d54270ec9fb9721e385abdfccbfe99a1e2 /llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp | |
parent | d3e3d48cb9d430f46406403767cad4aa0f490ec4 (diff) | |
download | llvm-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.cpp | 6 |
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) { |