diff options
| author | Mike Aizatsky <aizatsky@chromium.org> | 2016-04-21 23:38:45 +0000 |
|---|---|---|
| committer | Mike Aizatsky <aizatsky@chromium.org> | 2016-04-21 23:38:45 +0000 |
| commit | c89755e4cbad7a46d747f3b2d49c50a80855a801 (patch) | |
| tree | 2401bddd175108ed34d1018e421eec0cdc843705 /llvm/tools/sancov | |
| parent | f0f6c29cec1a8669738ce5874ad33e7e36925ff4 (diff) | |
| download | bcm5719-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.cc | 22 |
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); } } } |

