[sancov] save entry block from pruning (it is always full dominator)
llvm-svn: 265168
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 @@
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 @@
&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) {