From a41df172134ce75a2e1d27e9ee2ed711df2dfd53 Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Thu, 16 Oct 2014 17:10:38 +0000 Subject: [PATCH] Remove one of SanitizerBlacklist::isIn() overloads. NFC. The final goal is to get rid of all the rest overloads that accept LLVM objects (llvm::Function and llvm::GlobalVariable), and pass in source-level entities instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219937 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/SanitizerBlacklist.h | 6 +++--- lib/Basic/SanitizerBlacklist.cpp | 20 ++++++++++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/include/clang/Basic/SanitizerBlacklist.h b/include/clang/Basic/SanitizerBlacklist.h index b9a5dcbe60..7ea778e02c 100644 --- a/include/clang/Basic/SanitizerBlacklist.h +++ b/include/clang/Basic/SanitizerBlacklist.h @@ -23,7 +23,6 @@ namespace llvm { class GlobalVariable; class Function; -class Module; } namespace clang { @@ -33,12 +32,13 @@ class SanitizerBlacklist { public: SanitizerBlacklist(const std::string &BlacklistPath); - bool isIn(const llvm::Module &M, - StringRef Category = StringRef()) const; bool isIn(const llvm::Function &F) const; bool isIn(const llvm::GlobalVariable &G, StringRef Category = StringRef()) const; bool isBlacklistedType(StringRef MangledTypeName) const; + bool isBlacklistedFunction(StringRef FunctionName) const; + bool isBlacklistedFile(StringRef FileName, + StringRef Category = StringRef()) const; }; } // end namespace clang diff --git a/lib/Basic/SanitizerBlacklist.cpp b/lib/Basic/SanitizerBlacklist.cpp index 05dec8b5b8..7627bd0299 100644 --- a/lib/Basic/SanitizerBlacklist.cpp +++ b/lib/Basic/SanitizerBlacklist.cpp @@ -32,19 +32,14 @@ static StringRef GetGlobalTypeString(const llvm::GlobalValue &G) { SanitizerBlacklist::SanitizerBlacklist(const std::string &BlacklistPath) : SCL(llvm::SpecialCaseList::createOrDie(BlacklistPath)) {} -bool SanitizerBlacklist::isIn(const llvm::Module &M, - StringRef Category) const { - return SCL->inSection("src", M.getModuleIdentifier(), Category); -} - bool SanitizerBlacklist::isIn(const llvm::Function &F) const { - return isIn(*F.getParent()) || - SCL->inSection("fun", F.getName(), ""); + return isBlacklistedFile(F.getParent()->getModuleIdentifier()) || + isBlacklistedFunction(F.getName()); } bool SanitizerBlacklist::isIn(const llvm::GlobalVariable &G, StringRef Category) const { - return isIn(*G.getParent(), Category) || + return isBlacklistedFile(G.getParent()->getModuleIdentifier(), Category) || SCL->inSection("global", G.getName(), Category) || SCL->inSection("type", GetGlobalTypeString(G), Category); } @@ -52,3 +47,12 @@ bool SanitizerBlacklist::isIn(const llvm::GlobalVariable &G, bool SanitizerBlacklist::isBlacklistedType(StringRef MangledTypeName) const { return SCL->inSection("type", MangledTypeName); } + +bool SanitizerBlacklist::isBlacklistedFunction(StringRef FunctionName) const { + return SCL->inSection("fun", FunctionName); +} + +bool SanitizerBlacklist::isBlacklistedFile(StringRef FileName, + StringRef Category) const { + return SCL->inSection("src", FileName, Category); +} -- 2.40.0