summaryrefslogtreecommitdiffstats
path: root/llvm/tools/sancov
diff options
context:
space:
mode:
authorMike Aizatsky <aizatsky@chromium.org>2016-04-21 23:38:45 +0000
committerMike Aizatsky <aizatsky@chromium.org>2016-04-21 23:38:45 +0000
commitc89755e4cbad7a46d747f3b2d49c50a80855a801 (patch)
tree2401bddd175108ed34d1018e421eec0cdc843705 /llvm/tools/sancov
parentf0f6c29cec1a8669738ce5874ad33e7e36925ff4 (diff)
downloadbcm5719-llvm-c89755e4cbad7a46d747f3b2d49c50a80855a801.tar.gz
bcm5719-llvm-c89755e4cbad7a46d747f3b2d49c50a80855a801.zip
[sancov] using normalized filenames for blacklist checks.
Differential Revision: http://reviews.llvm.org/D19395 llvm-svn: 267078
Diffstat (limited to 'llvm/tools/sancov')
-rw-r--r--llvm/tools/sancov/sancov.cc22
1 files changed, 13 insertions, 9 deletions
diff --git a/llvm/tools/sancov/sancov.cc b/llvm/tools/sancov/sancov.cc
index 6ab5f14eabc..294b687debd 100644
--- a/llvm/tools/sancov/sancov.cc
+++ b/llvm/tools/sancov/sancov.cc
@@ -241,14 +241,16 @@ public:
: DefaultBlacklist(createDefaultBlacklist()),
UserBlacklist(createUserBlacklist()) {}
- bool isBlacklisted(const DILineInfo &DI) {
- if (DefaultBlacklist && DefaultBlacklist->inSection("fun", DI.FunctionName))
+ // AddrInfo contains normalized filename. It is important to check it rather
+ // than DILineInfo.
+ bool isBlacklisted(const AddrInfo &AI) {
+ if (DefaultBlacklist && DefaultBlacklist->inSection("fun", AI.FunctionName))
return true;
- if (DefaultBlacklist && DefaultBlacklist->inSection("src", DI.FileName))
+ if (DefaultBlacklist && DefaultBlacklist->inSection("src", AI.FileName))
return true;
- if (UserBlacklist && UserBlacklist->inSection("fun", DI.FunctionName))
+ if (UserBlacklist && UserBlacklist->inSection("fun", AI.FunctionName))
return true;
- if (UserBlacklist && UserBlacklist->inSection("src", DI.FileName))
+ if (UserBlacklist && UserBlacklist->inSection("src", AI.FileName))
return true;
return false;
}
@@ -286,17 +288,19 @@ static std::vector<AddrInfo> getAddrInfo(std::string ObjectFile,
for (auto Addr : Addrs) {
auto LineInfo = Symbolizer->symbolizeCode(ObjectFile, Addr);
FailIfError(LineInfo);
- if (B.isBlacklisted(*LineInfo))
+ auto LineAddrInfo = AddrInfo(*LineInfo, Addr);
+ if (B.isBlacklisted(LineAddrInfo))
continue;
- Result.push_back(AddrInfo(*LineInfo, Addr));
+ Result.push_back(LineAddrInfo);
if (InlinedCode) {
auto InliningInfo = Symbolizer->symbolizeInlinedCode(ObjectFile, Addr);
FailIfError(InliningInfo);
for (uint32_t I = 0; I < InliningInfo->getNumberOfFrames(); ++I) {
auto FrameInfo = InliningInfo->getFrame(I);
- if (B.isBlacklisted(FrameInfo))
+ auto FrameAddrInfo = AddrInfo(FrameInfo, Addr);
+ if (B.isBlacklisted(FrameAddrInfo))
continue;
- Result.push_back(AddrInfo(FrameInfo, Addr));
+ Result.push_back(FrameAddrInfo);
}
}
}
OpenPOWER on IntegriCloud