summaryrefslogtreecommitdiffstats
path: root/lib/Basic
diff options
context:
space:
mode:
authorAlexey Samsonov <vonosmas@gmail.com>2014-10-16 23:50:26 +0000
committerAlexey Samsonov <vonosmas@gmail.com>2014-10-16 23:50:26 +0000
commit1a976212e2ec2994ac5ba3ef321bee81f6969b47 (patch)
tree5ef9be5f6f18f6076c26a009224bd0832d7cf89f /lib/Basic
parent0737853191cd5203468f202382d11a069e718262 (diff)
Teach SanitizerBlacklist to blacklist by SourceLocation. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219993 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic')
-rw-r--r--lib/Basic/SanitizerBlacklist.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/Basic/SanitizerBlacklist.cpp b/lib/Basic/SanitizerBlacklist.cpp
index 84ec2100b6..f0221331ed 100644
--- a/lib/Basic/SanitizerBlacklist.cpp
+++ b/lib/Basic/SanitizerBlacklist.cpp
@@ -29,8 +29,9 @@ static StringRef GetGlobalTypeString(const llvm::GlobalValue &G) {
return "<unknown type>";
}
-SanitizerBlacklist::SanitizerBlacklist(const std::string &BlacklistPath)
- : SCL(llvm::SpecialCaseList::createOrDie(BlacklistPath)) {}
+SanitizerBlacklist::SanitizerBlacklist(StringRef BlacklistPath,
+ SourceManager &SM)
+ : SCL(llvm::SpecialCaseList::createOrDie(BlacklistPath)), SM(SM) {}
bool SanitizerBlacklist::isIn(const llvm::Function &F) const {
return isBlacklistedFile(F.getParent()->getModuleIdentifier()) ||
@@ -57,3 +58,9 @@ bool SanitizerBlacklist::isBlacklistedFile(StringRef FileName,
StringRef Category) const {
return SCL->inSection("src", FileName, Category);
}
+
+bool SanitizerBlacklist::isBlacklistedLocation(SourceLocation Loc,
+ StringRef Category) const {
+ return !Loc.isInvalid() && isBlacklistedFile(SM.getFilename(Loc), Category);
+}
+