Static Value-Flow Analysis
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | List of all members
SVF::GenericGraphTraits< const SlicedSVFGView * > Struct Reference

Public Types

using NodeRef = SlicedSVFGNodeRef
 
using EdgeRef = SlicedSVFGEdgeRef
 
using nodes_iterator = SlicedSVFGNodeIter
 
using ChildIteratorType = SlicedSVFGChildIterImpl< true >
 
using ChildEdgeIteratorType = SlicedSVFGEdgeIterImpl< true >
 

Static Public Member Functions

static const SVFGNodegetRawNode (NodeRef n)
 
static bool containsNode (const SlicedSVFGView *g, const SVFGNode *n)
 Whether n is retained by this sliced SVFG (the solver's restriction test).
 
static NodeRef getEntryNode (const SlicedSVFGView *)
 
static nodes_iterator nodes_begin (const SlicedSVFGView *v)
 
static nodes_iterator nodes_end (const SlicedSVFGView *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 getNodeID (NodeRef n)
 
static NodeRef getNode (const SlicedSVFGView *v, NodeID id)
 

Detailed Description

Definition at line 1681 of file SlicedGraphs.h.

Member Typedef Documentation

◆ ChildEdgeIteratorType

Definition at line 1687 of file SlicedGraphs.h.

◆ ChildIteratorType

Definition at line 1686 of file SlicedGraphs.h.

◆ EdgeRef

Definition at line 1684 of file SlicedGraphs.h.

◆ NodeRef

Definition at line 1683 of file SlicedGraphs.h.

◆ nodes_iterator

Definition at line 1685 of file SlicedGraphs.h.

Member Function Documentation

◆ child_begin()

Definition at line 1716 of file SlicedGraphs.h.

1717 {
1719 }
cJSON * n
Definition cJSON.cpp:2558
static SlicedSVFGEdgeIterImpl begin(const SlicedSVFGView *v, const SVFGNode *n)
SlicedSVFGChildIterImpl< true > ChildIteratorType

◆ child_edge_begin()

Definition at line 1733 of file SlicedGraphs.h.

1734 {
1735 return ChildEdgeIteratorType::begin(n.view, n.raw);
1736 }

◆ child_edge_end()

Definition at line 1737 of file SlicedGraphs.h.

1738 {
1739 return ChildEdgeIteratorType::end(n.view, n.raw);
1740 }
static SlicedSVFGEdgeIterImpl end(const SlicedSVFGView *v, const SVFGNode *n)

◆ child_end()

Definition at line 1720 of file SlicedGraphs.h.

1721 {
1723 }

◆ containsNode()

static bool SVF::GenericGraphTraits< const SlicedSVFGView * >::containsNode ( const SlicedSVFGView g,
const SVFGNode n 
)
inlinestatic

Whether n is retained by this sliced SVFG (the solver's restriction test).

Definition at line 1695 of file SlicedGraphs.h.

1696 {
1697 return g->isKeptNode(n);
1698 }
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:76

◆ direct_child_begin()

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

Definition at line 1724 of file SlicedGraphs.h.

1725 {
1726 return child_begin(n);
1727 }
static ChildIteratorType child_begin(NodeRef n)

◆ direct_child_end()

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

Definition at line 1728 of file SlicedGraphs.h.

1729 {
1730 return child_end(n);
1731 }
static ChildIteratorType child_end(NodeRef n)

◆ edge_dest()

static NodeRef SVF::GenericGraphTraits< const SlicedSVFGView * >::edge_dest ( const EdgeRef e)
inlinestatic

Definition at line 1742 of file SlicedGraphs.h.

1743 {
1744 return e.dst;
1745 }

◆ getEntryNode()

Definition at line 1700 of file SlicedGraphs.h.

1701 {
1702 return NodeRef{};
1703 }

◆ getNode()

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

Definition at line 1750 of file SlicedGraphs.h.

1751 {
1752 const SVFGNode* raw =
1753 (v->getSVFG() != nullptr) ? v->getSVFG()->getGNode(id) : nullptr;
1754 return NodeRef{v, (raw != nullptr && v->isKeptNode(raw)) ? raw : nullptr};
1755 }
const char *const const char *const raw
Definition cJSON.h:270
VFGNode SVFGNode
Definition SVFG.h:43

◆ getNodeID()

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

Definition at line 1746 of file SlicedGraphs.h.

1747 {
1748 return n.raw->getId();
1749 }

◆ getRawNode()

static const SVFGNode * SVF::GenericGraphTraits< const SlicedSVFGView * >::getRawNode ( NodeRef  n)
inlinestatic

Definition at line 1689 of file SlicedGraphs.h.

1690 {
1691 return n.raw;
1692 }

◆ nodes_begin()

Definition at line 1705 of file SlicedGraphs.h.

1706 {
1707 assert(v->getSVFG() && "SlicedSVFGView: bind the SVFG before iterating nodes");
1708 return SlicedSVFGNodeIter(v, v->getSVFG()->begin(), v->getSVFG()->end());
1709 }

◆ nodes_end()

Definition at line 1710 of file SlicedGraphs.h.

1711 {
1712 assert(v->getSVFG() && "SlicedSVFGView: bind the SVFG before iterating nodes");
1713 return SlicedSVFGNodeIter(v, v->getSVFG()->end(), v->getSVFG()->end());
1714 }

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