30 #ifndef INCLUDE_UTIL_CXTSTMT_H_
31 #define INCLUDE_UTIL_CXTSTMT_H_
100 std::stringstream rawstr(str);
102 for(CallStrCxt::const_iterator it =
cxt.begin(), eit =
cxt.end(); it!=eit; ++it)
104 rawstr << *it <<
" ";
173 return !(*
this==rhs);
242 return !(*
this==rhs);
248 std::stringstream rawstr(str);
250 for(CallStrCxt::const_iterator it =
cxt.begin(), eit =
cxt.end(); it!=eit; ++it)
252 rawstr << *it <<
" ";
288 << loop << cycle <<
" ]\n";
293 << loop << cycle <<
" ]\n";
363 return !(*
this == rhs);
369 std::stringstream rawstr(str);
371 for (CallStrCxt::const_iterator it =
cxt.begin(), eit =
cxt.end(); it != eit; ++it)
373 rawstr << *it <<
" ";
446 return !(*
this==rhs);
460 template <>
struct std::hash<
SVF::CxtThread>
464 std::hash<SVF::CallStrCxt> h;
468 template <>
struct std::hash<
SVF::CxtThreadProc>
472 std::hash<SVF::NodeID> h;
476 template <>
struct std::hash<
SVF::CxtThreadStmt>
480 std::hash<SVF::NodeID> h;
484 template <>
struct std::hash<
SVF::CxtStmt>
488 std::hash<SVF::ICFGNode*> h;
493 template <>
struct std::hash<
SVF::CxtProc>
497 std::hash<SVF::SVFFunction*> h;
bool operator!=(const CxtProc &rhs) const
Overloading operator==.
void dump() const
Dump CxtProc.
CxtProc(const CxtProc &ctm)
Copy constructor.
CxtProc & operator=(const CxtProc &rhs)
Overloading operator=.
bool operator==(const CxtProc &rhs) const
Overloading operator==.
virtual ~CxtProc()
Destructor.
const CallStrCxt & getContext() const
Return current context.
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==.
const CallStrCxt & getContext() const
Return current context.
virtual ~CxtStmt()
Destructor.
CxtStmt & operator=(const CxtStmt &rhs)
Overloading operator=.
void dump() const
Dump CxtStmt.
bool operator<(const CxtStmt &rhs) const
std::string cxtToStr() const
Return context in string format.
CxtStmt(const CxtStmt &ctm)
Copy constructor.
bool operator==(const CxtStmt &rhs) const
Overloading operator==.
const ICFGNode * getStmt() const
Return current statement.
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.
void dump() const
Dump CxtThreadStmt.
CxtThreadStmt & operator=(const CxtThreadStmt &rhs)
Overloading operator=.
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=.
virtual ~CxtThread()
Destructor.
bool operator<(const CxtThread &rhs) const
void dump() const
Dump CxtThread.
const ICFGNode * forksite
CxtThread(const CallStrCxt &c, const ICFGNode *fork)
Constructor.
const ICFGNode * getThread() const
Return forksite.
const CallStrCxt & getContext() const
Return context of the thread.
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()
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