summaryrefslogtreecommitdiffstats
path: root/clang/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
commit33e00e22dadec919bee9ce24c0099fb79b8d38a1 (patch)
tree9f76cab909aa1852b23de5bccbe70bb5f4dd423a /clang/lib/Basic
parent63f2c2cb6599aed7db956272a6a0f541d864e69b (diff)
downloadbcm5719-llvm-33e00e22dadec919bee9ce24c0099fb79b8d38a1.tar.gz
bcm5719-llvm-33e00e22dadec919bee9ce24c0099fb79b8d38a1.zip
Teach SanitizerBlacklist to blacklist by SourceLocation. NFC.
llvm-svn: 219993
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/SanitizerBlacklist.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/clang/lib/Basic/SanitizerBlacklist.cpp b/clang/lib/Basic/SanitizerBlacklist.cpp
index 84ec2100b62..f0221331ed2 100644
--- a/clang/lib/Basic/SanitizerBlacklist.cpp
+++ b/clang/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);
+}
+
OpenPOWER on IntegriCloud