Static Value-Flow Analysis
Loading...
Searching...
No Matches
SVF::GenericGraphTraits< SVF::ICFG * > Struct Reference

#include <ICFG.h>

Inheritance diagram for SVF::GenericGraphTraits< SVF::ICFG * >:
SVF::GenericGraphTraits< SVF::GenericGraph< SVF::ICFGNode, SVF::ICFGEdge > * >

Public Types

typedef SVF::ICFGNode * NodeRef
Public Types inherited from SVF::GenericGraphTraits< SVF::GenericGraph< SVF::ICFGNode, SVF::ICFGEdge > * >
using NodeRef

Static Public Member Functions

static const SVF::ICFGNode * getFunEntry (SVF::ICFG *, const SVF::FunObjVar *fun)
 Entry node of fun under this graph (whole ICFG: the entry block's front).
static const SVF::ICFGNode * getFunExit (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()

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()

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 }

◆ getFunExit()

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 }

◆ getFunICFGNodes()

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 }

◆ getPredNodes()

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()

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: