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

#include <SlicedGraphs.h>

Public Types

using NodeRef = SlicedICFGNodeRef
using EdgeRef = SlicedICFGEdgeRef
using nodes_iterator = SlicedICFGNodeIter
using ChildIteratorType = SlicedICFGChildIterImpl<true>
using ChildEdgeIteratorType = SlicedICFGEdgeIterImpl<true>

Static Public Member Functions

static const ICFGNode * getRawNode (NodeRef n)
static const ICFGNode * getFunEntry (const SlicedICFGView *g, const FunObjVar *fun)
static const ICFGNode * getFunExit (const SlicedICFGView *g, const FunObjVar *fun)
static void getFunICFGNodes (const SlicedICFGView *g, const FunObjVar *fun, std::vector< const ICFGNode * > &out)
static void getSuccNodes (const SlicedICFGView *g, const ICFGNode *n, std::vector< const ICFGNode * > &out)
static void getPredNodes (const SlicedICFGView *g, const ICFGNode *n, std::vector< const ICFGNode * > &out)
static bool containsNode (const SlicedICFGView *g, const ICFGNode *n)
static NodeRef getEntryNode (const SlicedICFGView *)
static nodes_iterator nodes_begin (const SlicedICFGView *v)
static nodes_iterator nodes_end (const SlicedICFGView *v)
static ChildIteratorType child_begin (NodeRef n)
static ChildIteratorType child_end (NodeRef n)
static ChildIteratorType direct_child_begin (NodeRef n)
static ChildIteratorType direct_child_end (NodeRef n)
static ChildEdgeIteratorType child_edge_begin (NodeRef n)
static ChildEdgeIteratorType child_edge_end (NodeRef n)
static NodeRef edge_dest (const EdgeRef &e)
static unsigned graphSize (const SlicedICFGView *v)
static unsigned getNodeID (NodeRef n)
static NodeRef getNode (const SlicedICFGView *v, NodeID id)

Detailed Description

Definition at line 1272 of file SlicedGraphs.h.

Member Typedef Documentation

◆ ChildEdgeIteratorType

using SVF::GenericGraphTraits< const SlicedICFGView * >::ChildEdgeIteratorType = SlicedICFGEdgeIterImpl<true>

Definition at line 1278 of file SlicedGraphs.h.

◆ ChildIteratorType

using SVF::GenericGraphTraits< const SlicedICFGView * >::ChildIteratorType = SlicedICFGChildIterImpl<true>

Definition at line 1277 of file SlicedGraphs.h.

◆ EdgeRef

Definition at line 1275 of file SlicedGraphs.h.

◆ NodeRef

Definition at line 1274 of file SlicedGraphs.h.

◆ nodes_iterator

using SVF::GenericGraphTraits< const SlicedICFGView * >::nodes_iterator = SlicedICFGNodeIter

Definition at line 1276 of file SlicedGraphs.h.

Member Function Documentation

◆ child_begin()

ChildIteratorType SVF::GenericGraphTraits< const SlicedICFGView * >::child_begin ( NodeRef n)
inlinestatic

Definition at line 1333 of file SlicedGraphs.h.

1334 {
1336 }
static SlicedICFGEdgeIterImpl begin(const SlicedICFGView *v, const ICFGNode *n)
SlicedICFGChildIterImpl< true > ChildIteratorType

◆ child_edge_begin()

ChildEdgeIteratorType SVF::GenericGraphTraits< const SlicedICFGView * >::child_edge_begin ( NodeRef n)
inlinestatic

Definition at line 1350 of file SlicedGraphs.h.

1351 {
1352 return ChildEdgeIteratorType::begin(n.view, n.raw);
1353 }

◆ child_edge_end()

ChildEdgeIteratorType SVF::GenericGraphTraits< const SlicedICFGView * >::child_edge_end ( NodeRef n)
inlinestatic

Definition at line 1354 of file SlicedGraphs.h.

1355 {
1356 return ChildEdgeIteratorType::end(n.view, n.raw);
1357 }
static SlicedICFGEdgeIterImpl end(const SlicedICFGView *v, const ICFGNode *n)

◆ child_end()

ChildIteratorType SVF::GenericGraphTraits< const SlicedICFGView * >::child_end ( NodeRef n)
inlinestatic

Definition at line 1337 of file SlicedGraphs.h.

1338 {
1340 }

◆ containsNode()

bool SVF::GenericGraphTraits< const SlicedICFGView * >::containsNode ( const SlicedICFGView * g,
const ICFGNode * n )
inlinestatic

Definition at line 1313 of file SlicedGraphs.h.

1314 {
1315 return g->isKeptNode(n);
1316 }

◆ direct_child_begin()

ChildIteratorType SVF::GenericGraphTraits< const SlicedICFGView * >::direct_child_begin ( NodeRef n)
inlinestatic

Definition at line 1341 of file SlicedGraphs.h.

1342 {
1343 return child_begin(n);
1344 }
static ChildIteratorType child_begin(NodeRef n)

◆ direct_child_end()

ChildIteratorType SVF::GenericGraphTraits< const SlicedICFGView * >::direct_child_end ( NodeRef n)
inlinestatic

Definition at line 1345 of file SlicedGraphs.h.

1346 {
1347 return child_end(n);
1348 }
static ChildIteratorType child_end(NodeRef n)

◆ edge_dest()

NodeRef SVF::GenericGraphTraits< const SlicedICFGView * >::edge_dest ( const EdgeRef & e)
inlinestatic

Definition at line 1359 of file SlicedGraphs.h.

1360 {
1361 return e.dst;
1362 }

◆ getEntryNode()

NodeRef SVF::GenericGraphTraits< const SlicedICFGView * >::getEntryNode ( const SlicedICFGView * )
inlinestatic

Definition at line 1319 of file SlicedGraphs.h.

1320 {
1321 return NodeRef{};
1322 }

◆ getFunEntry()

const ICFGNode * SVF::GenericGraphTraits< const SlicedICFGView * >::getFunEntry ( const SlicedICFGView * g,
const FunObjVar * fun )
inlinestatic

Definition at line 1290 of file SlicedGraphs.h.

1291 {
1292 return g->getFunEntry(fun);
1293 }

◆ getFunExit()

const ICFGNode * SVF::GenericGraphTraits< const SlicedICFGView * >::getFunExit ( const SlicedICFGView * g,
const FunObjVar * fun )
inlinestatic

Definition at line 1294 of file SlicedGraphs.h.

1295 {
1296 return g->getFunExit(fun);
1297 }

◆ getFunICFGNodes()

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

Definition at line 1298 of file SlicedGraphs.h.

1300 {
1301 g->getFunICFGNodes(fun, out);
1302 }

◆ getNode()

NodeRef SVF::GenericGraphTraits< const SlicedICFGView * >::getNode ( const SlicedICFGView * v,
NodeID id )
inlinestatic

Definition at line 1372 of file SlicedGraphs.h.

1373 {
1374 const ICFGNode* raw = v->getOriginalICFG()->getGNode(id);
1375 return NodeRef{v, (raw != nullptr && v->isKeptNode(raw)) ? raw : nullptr};
1376 }

◆ getNodeID()

unsigned SVF::GenericGraphTraits< const SlicedICFGView * >::getNodeID ( NodeRef n)
inlinestatic

Definition at line 1368 of file SlicedGraphs.h.

1369 {
1370 return n.raw->getId();
1371 }

◆ getPredNodes()

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

Definition at line 1308 of file SlicedGraphs.h.

1310 {
1311 g->getPredNodes(n, out);
1312 }

◆ getRawNode()

const ICFGNode * SVF::GenericGraphTraits< const SlicedICFGView * >::getRawNode ( NodeRef n)
inlinestatic

Definition at line 1282 of file SlicedGraphs.h.

1283 {
1284 return n.raw;
1285 }

◆ getSuccNodes()

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

Definition at line 1303 of file SlicedGraphs.h.

1305 {
1306 g->getSuccNodes(n, out);
1307 }

◆ graphSize()

unsigned SVF::GenericGraphTraits< const SlicedICFGView * >::graphSize ( const SlicedICFGView * v)
inlinestatic

Definition at line 1364 of file SlicedGraphs.h.

1365 {
1366 return static_cast<unsigned>(v->getKeptNodes().size());
1367 }

◆ nodes_begin()

nodes_iterator SVF::GenericGraphTraits< const SlicedICFGView * >::nodes_begin ( const SlicedICFGView * v)
inlinestatic

Definition at line 1324 of file SlicedGraphs.h.

1325 {
1326 return SlicedICFGNodeIter(v, v->getKeptNodes().begin());
1327 }

◆ nodes_end()

nodes_iterator SVF::GenericGraphTraits< const SlicedICFGView * >::nodes_end ( const SlicedICFGView * v)
inlinestatic

Definition at line 1328 of file SlicedGraphs.h.

1329 {
1330 return SlicedICFGNodeIter(v, v->getKeptNodes().end());
1331 }

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