30#ifndef INCLUDE_UTIL_CXTSTMT_H_
31#define INCLUDE_UTIL_CXTSTMT_H_
74 return cxt <
rhs.getContext();
149 return tid <
rhs.getTid();
153 return cxt <
rhs.getContext();
173 return !(*
this==
rhs);
222 return cxt <
rhs.getContext();
242 return !(*
this==
rhs);
341 return fun <
rhs.getProc();
343 return cxt <
rhs.getContext();
358 return (
fun ==
rhs.getProc() &&
cxt ==
rhs.getContext());
363 return !(*
this ==
rhs);
421 return tid <
rhs.getTid();
422 else if(
fun!=
rhs.getProc())
423 return fun <
rhs.getProc();
425 return cxt <
rhs.getContext();
446 return !(*
this==
rhs);
460template <>
struct std::hash<
SVF::CxtThread>
464 std::hash<SVF::CallStrCxt> h;
468template <>
struct std::hash<
SVF::CxtThreadProc>
472 std::hash<SVF::NodeID> h;
476template <>
struct std::hash<
SVF::CxtThreadStmt>
480 std::hash<SVF::NodeID> h;
484template <>
struct std::hash<
SVF::CxtStmt>
488 std::hash<SVF::ICFGNode*> h;
493template <>
struct std::hash<
SVF::CxtProc>
497 std::hash<SVF::SVFFunction*> h;
bool operator!=(const CxtProc &rhs) const
Overloading operator==.
CxtProc & operator=(const CxtProc &rhs)
Overloading operator=.
void dump() const
Dump CxtProc.
CxtProc(const CxtProc &ctm)
Copy constructor.
const CallStrCxt & getContext() const
Return current context.
bool operator==(const CxtProc &rhs) const
Overloading operator==.
virtual ~CxtProc()
Destructor.
bool operator<(const CxtProc &rhs) const
const SVFFunction * getProc() const
Return current procedure.
CxtProc(const CallStrCxt &c, const SVFFunction *f)
Constructor.
std::string cxtToStr() const
Return context in string format.
CxtStmt(const CallStrCxt &c, const ICFGNode *f)
Constructor.
bool operator!=(const CxtStmt &rhs) const
Overloading operator==.
virtual ~CxtStmt()
Destructor.
void dump() const
Dump CxtStmt.
const CallStrCxt & getContext() const
Return current context.
bool operator<(const CxtStmt &rhs) const
std::string cxtToStr() const
Return context in string format.
CxtStmt & operator=(const CxtStmt &rhs)
Overloading operator=.
const ICFGNode * getStmt() const
Return current statement.
CxtStmt(const CxtStmt &ctm)
Copy constructor.
bool operator==(const CxtStmt &rhs) const
Overloading operator==.
CxtThreadProc(NodeID t, const CallStrCxt &c, const SVFFunction *f)
Constructor.
CxtThreadProc & operator=(const CxtThreadProc &rhs)
Overloading operator=.
bool operator<(const CxtThreadProc &rhs) const
NodeID getTid() const
Return current thread id.
bool operator!=(const CxtThreadProc &rhs) const
Overloading operator==.
virtual ~CxtThreadProc()
Destructor.
CxtThreadProc(const CxtThreadProc &ctm)
Copy constructor.
void dump() const
Dump CxtThreadProc.
bool operator==(const CxtThreadProc &rhs) const
Overloading operator==.
CxtThreadStmt(NodeID t, const CallStrCxt &c, const ICFGNode *f)
Constructor.
NodeID getTid() const
Return current context.
CxtThreadStmt & operator=(const CxtThreadStmt &rhs)
Overloading operator=.
void dump() const
Dump CxtThreadStmt.
CxtThreadStmt(const CxtThreadStmt &ctm)
Copy constructor.
bool operator!=(const CxtThreadStmt &rhs) const
Overloading operator==.
virtual ~CxtThreadStmt()
Destructor.
bool operator==(const CxtThreadStmt &rhs) const
Overloading operator==.
bool operator<(const CxtThreadStmt &rhs) const
CxtThread & operator=(const CxtThread &rhs)
Overloading operator=.
const CallStrCxt & getContext() const
Return context of the thread.
virtual ~CxtThread()
Destructor.
bool operator<(const CxtThread &rhs) const
const ICFGNode * getThread() const
Return forksite.
void dump() const
Dump CxtThread.
const ICFGNode * forksite
CxtThread(const CallStrCxt &c, const ICFGNode *fork)
Constructor.
std::string cxtToStr() const
Return context in string format.
void setInloop(bool in)
inloop, incycle attributes
CxtThread(const CxtThread &ct)
Copy constructor.
bool operator!=(const CxtThread &rhs) const
Overloading operator==.
bool operator==(const CxtThread &rhs) const
Overloading operator==.
virtual const std::string toString() const
const std::string & getName() const
std::ostream & outs()
Overwrite llvm::outs()
llvm::IRBuilder IRBuilder
std::vector< u32_t > CallStrCxt
size_t operator()(const SVF::CxtProc &cs) const
size_t operator()(const SVF::CxtStmt &cs) const
size_t operator()(const SVF::CxtThreadProc &ctp) const
size_t operator()(const SVF::CxtThreadStmt &cts) const
size_t operator()(const SVF::CxtThread &cs) const