Static Value-Flow Analysis
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | Static Public Attributes | 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 bool containsEdge (const SlicedSVFGView *g, const SVFGEdge *e)
 
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 unsigned graphSize (const SlicedSVFGView *v)
 
static NodeRef getNode (const SlicedSVFGView *v, NodeID id)
 

Static Public Attributes

static constexpr bool isFilteredGraph = true
 

Detailed Description

Definition at line 1706 of file SlicedGraphs.h.

Member Typedef Documentation

◆ ChildEdgeIteratorType

Definition at line 1712 of file SlicedGraphs.h.

◆ ChildIteratorType

Definition at line 1711 of file SlicedGraphs.h.

◆ EdgeRef

Definition at line 1709 of file SlicedGraphs.h.

◆ NodeRef

Definition at line 1708 of file SlicedGraphs.h.

◆ nodes_iterator

Definition at line 1710 of file SlicedGraphs.h.

Member Function Documentation

◆ child_begin()

Definition at line 1747 of file SlicedGraphs.h.

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

◆ child_edge_begin()

Definition at line 1764 of file SlicedGraphs.h.

1765 {
1766 return ChildEdgeIteratorType::begin(n.view, n.raw);
1767 }

◆ child_edge_end()

Definition at line 1768 of file SlicedGraphs.h.

1769 {
1770 return ChildEdgeIteratorType::end(n.view, n.raw);
1771 }
static SlicedSVFGEdgeIterImpl end(const SlicedSVFGView *v, const SVFGNode *n)

◆ child_end()

Definition at line 1751 of file SlicedGraphs.h.

1752 {
1754 }

◆ containsEdge()

static bool SVF::GenericGraphTraits< const SlicedSVFGView * >::containsEdge ( const SlicedSVFGView g,
const SVFGEdge e 
)
inlinestatic

Definition at line 1726 of file SlicedGraphs.h.

1727 {
1728 return g->isKeptEdge(e);
1729 }
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:76

◆ 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 1721 of file SlicedGraphs.h.

1722 {
1723 return g->isKeptNode(n);
1724 }

◆ direct_child_begin()

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

Definition at line 1755 of file SlicedGraphs.h.

1756 {
1757 return child_begin(n);
1758 }
static ChildIteratorType child_begin(NodeRef n)

◆ direct_child_end()

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

Definition at line 1759 of file SlicedGraphs.h.

1760 {
1761 return child_end(n);
1762 }
static ChildIteratorType child_end(NodeRef n)

◆ edge_dest()

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

Definition at line 1773 of file SlicedGraphs.h.

1774 {
1775 return e.dst;
1776 }

◆ getEntryNode()

Definition at line 1731 of file SlicedGraphs.h.

1732 {
1733 return NodeRef{};
1734 }

◆ getNode()

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

Definition at line 1785 of file SlicedGraphs.h.

1786 {
1787 const SVFGNode* raw =
1788 (v->getSVFG() != nullptr) ? v->getSVFG()->getGNode(id) : nullptr;
1789 return NodeRef{v, (raw != nullptr && v->isKeptNode(raw)) ? raw : nullptr};
1790 }
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 1777 of file SlicedGraphs.h.

1778 {
1779 return n.raw->getId();
1780 }

◆ getRawNode()

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

Definition at line 1715 of file SlicedGraphs.h.

1716 {
1717 return n.raw;
1718 }

◆ graphSize()

Definition at line 1781 of file SlicedGraphs.h.

1782 {
1783 return static_cast<unsigned>(v->getKeptNodeCount());
1784 }

◆ nodes_begin()

Definition at line 1736 of file SlicedGraphs.h.

1737 {
1738 assert(v->getSVFG() && "SlicedSVFGView: bind the SVFG before iterating nodes");
1739 return SlicedSVFGNodeIter(v, v->getSVFG()->begin(), v->getSVFG()->end());
1740 }

◆ nodes_end()

Definition at line 1741 of file SlicedGraphs.h.

1742 {
1743 assert(v->getSVFG() && "SlicedSVFGView: bind the SVFG before iterating nodes");
1744 return SlicedSVFGNodeIter(v, v->getSVFG()->end(), v->getSVFG()->end());
1745 }

Member Data Documentation

◆ isFilteredGraph

constexpr bool SVF::GenericGraphTraits< const SlicedSVFGView * >::isFilteredGraph = true
staticconstexpr

Definition at line 1713 of file SlicedGraphs.h.


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