Static Value-Flow Analysis
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
SVF::SlicedSVFGNodeIter Class Reference

#include <SlicedGraphs.h>

Public Types

using iterator_category = std::forward_iterator_tag
 
using value_type = SlicedSVFGNodeRef
 
using difference_type = std::ptrdiff_t
 
using pointer = const SlicedSVFGNodeRef *
 
using reference = SlicedSVFGNodeRef
 

Public Member Functions

 SlicedSVFGNodeIter ()=default
 
 SlicedSVFGNodeIter (const SlicedSVFGView *v, SVFG::const_iterator i, SVFG::const_iterator e)
 
reference operator* () const
 
SlicedSVFGNodeIteroperator++ ()
 
SlicedSVFGNodeIter operator++ (int)
 

Private Member Functions

void skipNonKept ()
 

Private Attributes

const SlicedSVFGViewview = nullptr
 
SVFG::const_iterator it {}
 
SVFG::const_iterator endIt {}
 

Friends

bool operator== (const SlicedSVFGNodeIter &a, const SlicedSVFGNodeIter &b)
 
bool operator!= (const SlicedSVFGNodeIter &a, const SlicedSVFGNodeIter &b)
 

Detailed Description

Definition at line 1211 of file SlicedGraphs.h.

Member Typedef Documentation

◆ difference_type

Definition at line 1216 of file SlicedGraphs.h.

◆ iterator_category

Definition at line 1214 of file SlicedGraphs.h.

◆ pointer

Definition at line 1217 of file SlicedGraphs.h.

◆ reference

Definition at line 1218 of file SlicedGraphs.h.

◆ value_type

Definition at line 1215 of file SlicedGraphs.h.

Constructor & Destructor Documentation

◆ SlicedSVFGNodeIter() [1/2]

SVF::SlicedSVFGNodeIter::SlicedSVFGNodeIter ( )
default

◆ SlicedSVFGNodeIter() [2/2]

SVF::SlicedSVFGNodeIter::SlicedSVFGNodeIter ( const SlicedSVFGView v,
SVFG::const_iterator  i,
SVFG::const_iterator  e 
)
inline

Definition at line 1221 of file SlicedGraphs.h.

1222 : view(v), it(i), endIt(e)
1223 {
1224 skipNonKept();
1225 }
const SlicedSVFGView * view
SVFG::const_iterator it
SVFG::const_iterator endIt
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:76

Member Function Documentation

◆ operator*()

reference SVF::SlicedSVFGNodeIter::operator* ( ) const
inline

Definition at line 1227 of file SlicedGraphs.h.

1228 {
1229 return SlicedSVFGNodeRef{view, it->second};
1230 }
SlicedNodeRef< SlicedSVFGView, SVFGNode > SlicedSVFGNodeRef

◆ operator++() [1/2]

SlicedSVFGNodeIter & SVF::SlicedSVFGNodeIter::operator++ ( )
inline

Definition at line 1231 of file SlicedGraphs.h.

1232 {
1233 ++it;
1234 skipNonKept();
1235 return *this;
1236 }

◆ operator++() [2/2]

SlicedSVFGNodeIter SVF::SlicedSVFGNodeIter::operator++ ( int  )
inline

Definition at line 1237 of file SlicedGraphs.h.

1238 {
1239 SlicedSVFGNodeIter t = *this;
1240 ++*this;
1241 return t;
1242 }

◆ skipNonKept()

void SVF::SlicedSVFGNodeIter::skipNonKept ( )
inlineprivate

Definition at line 1255 of file SlicedGraphs.h.

1256 {
1257 while (it != endIt && !view->isKeptNode(it->second)) ++it;
1258 }
bool isKeptNode(const SVFGNode *n) const
Whether the node is retained (see the class comment for the rule).

Friends And Related Symbol Documentation

◆ operator!=

bool operator!= ( const SlicedSVFGNodeIter a,
const SlicedSVFGNodeIter b 
)
friend

Definition at line 1247 of file SlicedGraphs.h.

1248 {
1249 return !(a == b);
1250 }
cJSON * a
Definition cJSON.cpp:2560
const cJSON *const b
Definition cJSON.h:255

◆ operator==

Definition at line 1243 of file SlicedGraphs.h.

1244 {
1245 return a.view == b.view && a.it == b.it;
1246 }

Member Data Documentation

◆ endIt

SVFG::const_iterator SVF::SlicedSVFGNodeIter::endIt {}
private

Definition at line 1254 of file SlicedGraphs.h.

1254{}, endIt{};

◆ it

SVFG::const_iterator SVF::SlicedSVFGNodeIter::it {}
private

Definition at line 1254 of file SlicedGraphs.h.

1254{}, endIt{};

◆ view

const SlicedSVFGView* SVF::SlicedSVFGNodeIter::view = nullptr
private

Definition at line 1253 of file SlicedGraphs.h.


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