Static Value-Flow Analysis
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | List of all members
SVF::GenericGraphTraits< SVF::ICFG * > Struct Reference
Inheritance diagram for SVF::GenericGraphTraits< SVF::ICFG * >:
SVF::GenericGraphTraits< SVF::GenericGraph< SVF::ICFGNode, SVF::ICFGEdge > * >

Public Types

typedef SVF::ICFGNodeNodeRef
 
- Public Types inherited from SVF::GenericGraphTraits< SVF::GenericGraph< SVF::ICFGNode, SVF::ICFGEdge > * >
using NodeRef = typename GraphType::UnknownGraphTypeError
 

Static Public Member Functions

static const SVF::ICFGNodegetFunEntry (SVF::ICFG *, const SVF::FunObjVar *fun)
 Entry node of fun under this graph (whole ICFG: the entry block's front).
 
static const SVF::ICFGNodegetFunExit (SVF::ICFG *graph, const SVF::FunObjVar *fun)
 Exit node of fun under the whole ICFG.
 
static void getFunICFGNodes (SVF::ICFG *, const SVF::FunObjVar *fun, std::vector< const SVF::ICFGNode * > &out)
 Nodes of fun contained in this graph (whole ICFG: all of them).
 
static void getSuccNodes (SVF::ICFG *, const SVF::ICFGNode *n, std::vector< const SVF::ICFGNode * > &out)
 Successors / predecessors of n under this graph.
 
static void getPredNodes (SVF::ICFG *, const SVF::ICFGNode *n, std::vector< const SVF::ICFGNode * > &out)
 
static bool containsNode (SVF::ICFG *, const SVF::ICFGNode *)
 Whether n belongs to this graph (whole ICFG contains every node).
 

Detailed Description

Definition at line 299 of file ICFG.h.

Member Typedef Documentation

◆ NodeRef

Definition at line 301 of file ICFG.h.

Member Function Documentation

◆ containsNode()

static bool SVF::GenericGraphTraits< SVF::ICFG * >::containsNode ( SVF::ICFG ,
const SVF::ICFGNode  
)
inlinestatic

Whether n belongs to this graph (whole ICFG contains every node).

Definition at line 343 of file ICFG.h.

344 {
345 return true;
346 }

◆ getFunEntry()

static const SVF::ICFGNode * SVF::GenericGraphTraits< SVF::ICFG * >::getFunEntry ( SVF::ICFG ,
const SVF::FunObjVar fun 
)
inlinestatic

Entry node of fun under this graph (whole ICFG: the entry block's front).

Definition at line 308 of file ICFG.h.

309 {
310 return fun->getEntryBlock()->front();
311 }
const SVFBasicBlock * getEntryBlock() const
const ICFGNode * front() const

◆ getFunExit()

static const SVF::ICFGNode * SVF::GenericGraphTraits< SVF::ICFG * >::getFunExit ( SVF::ICFG graph,
const SVF::FunObjVar fun 
)
inlinestatic

Exit node of fun under the whole ICFG.

Definition at line 313 of file ICFG.h.

315 {
316 return graph->getFunExitICFGNode(fun);
317 }
FunExitICFGNode * getFunExitICFGNode(const FunObjVar *fun)
Add a function exit node.
Definition ICFG.cpp:250

◆ getFunICFGNodes()

static void SVF::GenericGraphTraits< SVF::ICFG * >::getFunICFGNodes ( SVF::ICFG ,
const SVF::FunObjVar fun,
std::vector< const SVF::ICFGNode * > &  out 
)
inlinestatic

Nodes of fun contained in this graph (whole ICFG: all of them).

Definition at line 319 of file ICFG.h.

321 {
322 out.clear();
323 for (auto it : *fun)
324 for (const SVF::ICFGNode* n : it.second->getICFGNodeList())
325 out.push_back(n);
326 }
for(i=0;a &&(i<(size_t) count);i++)
Definition cJSON.cpp:2569
cJSON * n
Definition cJSON.cpp:2558
for isBitcode
Definition BasicTypes.h:70
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:76

◆ getPredNodes()

static void SVF::GenericGraphTraits< SVF::ICFG * >::getPredNodes ( SVF::ICFG ,
const SVF::ICFGNode n,
std::vector< const SVF::ICFGNode * > &  out 
)
inlinestatic

Definition at line 335 of file ICFG.h.

337 {
338 out.clear();
339 for (const SVF::ICFGEdge* e : n->getInEdges())
340 out.push_back(e->getSrcNode());
341 }

◆ getSuccNodes()

static void SVF::GenericGraphTraits< SVF::ICFG * >::getSuccNodes ( SVF::ICFG ,
const SVF::ICFGNode n,
std::vector< const SVF::ICFGNode * > &  out 
)
inlinestatic

Successors / predecessors of n under this graph.

Definition at line 328 of file ICFG.h.

330 {
331 out.clear();
332 for (const SVF::ICFGEdge* e : n->getOutEdges())
333 out.push_back(e->getDstNode());
334 }

The documentation for this struct was generated from the following file: