mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
[asan/tsan] rename FunctionBlackList* to BlackList* as this class is not limited to functions any more
llvm-svn: 162566
This commit is contained in:
parent
9318c48cb3
commit
3025fe1d94
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
#define DEBUG_TYPE "asan"
|
#define DEBUG_TYPE "asan"
|
||||||
|
|
||||||
#include "FunctionBlackList.h"
|
#include "BlackList.h"
|
||||||
#include "llvm/Function.h"
|
#include "llvm/Function.h"
|
||||||
#include "llvm/IRBuilder.h"
|
#include "llvm/IRBuilder.h"
|
||||||
#include "llvm/InlineAsm.h"
|
#include "llvm/InlineAsm.h"
|
||||||
@ -217,7 +217,7 @@ struct AddressSanitizer : public ModulePass {
|
|||||||
Function *AsanCtorFunction;
|
Function *AsanCtorFunction;
|
||||||
Function *AsanInitFunction;
|
Function *AsanInitFunction;
|
||||||
Instruction *CtorInsertBefore;
|
Instruction *CtorInsertBefore;
|
||||||
OwningPtr<FunctionBlackList> BL;
|
OwningPtr<BlackList> BL;
|
||||||
// This array is indexed by AccessIsWrite and log2(AccessSize).
|
// This array is indexed by AccessIsWrite and log2(AccessSize).
|
||||||
Function *AsanErrorCallback[2][kNumberOfAccessSizes];
|
Function *AsanErrorCallback[2][kNumberOfAccessSizes];
|
||||||
InlineAsm *EmptyAsm;
|
InlineAsm *EmptyAsm;
|
||||||
@ -736,7 +736,7 @@ bool AddressSanitizer::runOnModule(Module &M) {
|
|||||||
TD = getAnalysisIfAvailable<TargetData>();
|
TD = getAnalysisIfAvailable<TargetData>();
|
||||||
if (!TD)
|
if (!TD)
|
||||||
return false;
|
return false;
|
||||||
BL.reset(new FunctionBlackList(ClBlackListFile));
|
BL.reset(new BlackList(ClBlackListFile));
|
||||||
|
|
||||||
C = &(M.getContext());
|
C = &(M.getContext());
|
||||||
LongSize = TD->getPointerSizeInBits();
|
LongSize = TD->getPointerSizeInBits();
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//===-- FunctionBlackList.cpp - blacklist for sanitizers -----------------===//
|
//===-- BlackList.cpp - blacklist for sanitizers --------------------------===//
|
||||||
//
|
//
|
||||||
// The LLVM Compiler Infrastructure
|
// The LLVM Compiler Infrastructure
|
||||||
//
|
//
|
||||||
@ -16,7 +16,7 @@
|
|||||||
#include <utility>
|
#include <utility>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "FunctionBlackList.h"
|
#include "BlackList.h"
|
||||||
#include "llvm/ADT/OwningPtr.h"
|
#include "llvm/ADT/OwningPtr.h"
|
||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "llvm/ADT/StringExtras.h"
|
#include "llvm/ADT/StringExtras.h"
|
||||||
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
|
|
||||||
FunctionBlackList::FunctionBlackList(const StringRef Path) {
|
BlackList::BlackList(const StringRef Path) {
|
||||||
// Validate and open blacklist file.
|
// Validate and open blacklist file.
|
||||||
if (!Path.size()) return;
|
if (!Path.size()) return;
|
||||||
OwningPtr<MemoryBuffer> File;
|
OwningPtr<MemoryBuffer> File;
|
||||||
@ -77,19 +77,19 @@ FunctionBlackList::FunctionBlackList(const StringRef Path) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FunctionBlackList::isIn(const Function &F) {
|
bool BlackList::isIn(const Function &F) {
|
||||||
return isIn(*F.getParent()) || inSection("fun", F.getName());
|
return isIn(*F.getParent()) || inSection("fun", F.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FunctionBlackList::isIn(const GlobalVariable &G) {
|
bool BlackList::isIn(const GlobalVariable &G) {
|
||||||
return isIn(*G.getParent()) || inSection("global", G.getName());
|
return isIn(*G.getParent()) || inSection("global", G.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FunctionBlackList::isIn(const Module &M) {
|
bool BlackList::isIn(const Module &M) {
|
||||||
return inSection("src", M.getModuleIdentifier());
|
return inSection("src", M.getModuleIdentifier());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FunctionBlackList::inSection(const StringRef Section,
|
bool BlackList::inSection(const StringRef Section,
|
||||||
const StringRef Query) {
|
const StringRef Query) {
|
||||||
Regex *FunctionRegex = Entries[Section];
|
Regex *FunctionRegex = Entries[Section];
|
||||||
return FunctionRegex ? FunctionRegex->match(Query) : false;
|
return FunctionRegex ? FunctionRegex->match(Query) : false;
|
@ -1,4 +1,4 @@
|
|||||||
//===-- FunctionBlackList.h - blacklist for sanitizers ----------*- C++ -*-===//
|
//===-- BlackList.h - blacklist for sanitizers ------------------*- C++ -*-===//
|
||||||
//
|
//
|
||||||
// The LLVM Compiler Infrastructure
|
// The LLVM Compiler Infrastructure
|
||||||
//
|
//
|
||||||
@ -34,9 +34,9 @@ class Module;
|
|||||||
class Regex;
|
class Regex;
|
||||||
class StringRef;
|
class StringRef;
|
||||||
|
|
||||||
class FunctionBlackList {
|
class BlackList {
|
||||||
public:
|
public:
|
||||||
FunctionBlackList(const StringRef Path);
|
BlackList(const StringRef Path);
|
||||||
// Returns whether either this function or it's source file are blacklisted.
|
// Returns whether either this function or it's source file are blacklisted.
|
||||||
bool isIn(const Function &F);
|
bool isIn(const Function &F);
|
||||||
// Returns whether either this global or it's source file are blacklisted.
|
// Returns whether either this global or it's source file are blacklisted.
|
@ -1,8 +1,8 @@
|
|||||||
add_llvm_library(LLVMInstrumentation
|
add_llvm_library(LLVMInstrumentation
|
||||||
AddressSanitizer.cpp
|
AddressSanitizer.cpp
|
||||||
|
BlackList.cpp
|
||||||
BoundsChecking.cpp
|
BoundsChecking.cpp
|
||||||
EdgeProfiling.cpp
|
EdgeProfiling.cpp
|
||||||
FunctionBlackList.cpp
|
|
||||||
GCOVProfiling.cpp
|
GCOVProfiling.cpp
|
||||||
Instrumentation.cpp
|
Instrumentation.cpp
|
||||||
OptimalEdgeProfiling.cpp
|
OptimalEdgeProfiling.cpp
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
#define DEBUG_TYPE "tsan"
|
#define DEBUG_TYPE "tsan"
|
||||||
|
|
||||||
#include "FunctionBlackList.h"
|
#include "BlackList.h"
|
||||||
#include "llvm/Function.h"
|
#include "llvm/Function.h"
|
||||||
#include "llvm/IRBuilder.h"
|
#include "llvm/IRBuilder.h"
|
||||||
#include "llvm/Intrinsics.h"
|
#include "llvm/Intrinsics.h"
|
||||||
@ -77,7 +77,7 @@ struct ThreadSanitizer : public FunctionPass {
|
|||||||
int getMemoryAccessFuncIndex(Value *Addr);
|
int getMemoryAccessFuncIndex(Value *Addr);
|
||||||
|
|
||||||
TargetData *TD;
|
TargetData *TD;
|
||||||
OwningPtr<FunctionBlackList> BL;
|
OwningPtr<BlackList> BL;
|
||||||
IntegerType *OrdTy;
|
IntegerType *OrdTy;
|
||||||
// Callbacks to run-time library are computed in doInitialization.
|
// Callbacks to run-time library are computed in doInitialization.
|
||||||
Function *TsanFuncEntry;
|
Function *TsanFuncEntry;
|
||||||
@ -121,7 +121,7 @@ bool ThreadSanitizer::doInitialization(Module &M) {
|
|||||||
TD = getAnalysisIfAvailable<TargetData>();
|
TD = getAnalysisIfAvailable<TargetData>();
|
||||||
if (!TD)
|
if (!TD)
|
||||||
return false;
|
return false;
|
||||||
BL.reset(new FunctionBlackList(ClBlackListFile));
|
BL.reset(new BlackList(ClBlackListFile));
|
||||||
|
|
||||||
// Always insert a call to __tsan_init into the module's CTORs.
|
// Always insert a call to __tsan_init into the module's CTORs.
|
||||||
IRBuilder<> IRB(M.getContext());
|
IRBuilder<> IRB(M.getContext());
|
||||||
|
Loading…
Reference in New Issue
Block a user