9 #ifndef LOCKRESULTVALIDATOR_H_
10 #define LOCKRESULTVALIDATOR_H_
55 return LS.find(lockName) != LS.end();
79 static constexpr
char const *
LOCK =
"LOCK";
Set< CxtLock > CxtLockSet
Map< CxtStmt, CxtLockSet > CxtStmtToCxtLockSet
static const LOCK_FLAG LOCK_TRUE
static const LOCK_FLAG LOCK_UNSOUND
Set< std::string > getStringArg(const Instruction *inst, unsigned int arg_num)
Map< const SVFInstruction *, CxtLockSetStr > CxtStmtToCxtLockS
bool match(const std::string &lockName, CxtLockSetStr LS)
LockAnalysis::CxtLockSet cxtLockSet
bool inFilter(const std::string &name)
Set< std::string > filterFun
static const LOCK_FLAG LOCK_IMPRECISE
CallICFGNode * getCBN(const SVFInstruction *inst)
SVFModule * getModule() const
CxtStmtToCxtLockS instToCxtLockSet
const Instruction * getPreviousMemoryAccessInst(const Instruction *I)
std::string getOutput(const char *scenario, LOCK_FLAG analysisRes)
Set< std::string > & split(const std::string &s, char delim, Set< std::string > &elems)
LOCK_FLAG validateStmtInLock()
LockResultValidator(LockAnalysis *la)
LockAnalysis::CxtStmtToCxtLockSet cxtStmtToCxtLockSet
static constexpr char const * LOCK
bool collectLockTargets()
Set< std::string > CxtLockSetStr
CallICFGNode * getCallICFGNode(const SVFInstruction *inst)
Get CallICFGNode given inst.
SVFModule * getSVFModule() const
Get SVFFModule.
llvm::Instruction Instruction
std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map
std::unordered_set< Key, Hash, KeyEqual, Allocator > Set