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

Member Typedef Documentation

◆ difference_type

Definition at line 1232 of file SlicedGraphs.h.

◆ iterator_category

Definition at line 1230 of file SlicedGraphs.h.

◆ pointer

Definition at line 1233 of file SlicedGraphs.h.

◆ reference

Definition at line 1234 of file SlicedGraphs.h.

◆ value_type

Definition at line 1231 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 1237 of file SlicedGraphs.h.

1238 : view(v), it(i), endIt(e)
1239 {
1240 skipNonKept();
1241 }
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 1243 of file SlicedGraphs.h.

1244 {
1245 return SlicedSVFGNodeRef{view, it->second};
1246 }
SlicedNodeRef< SlicedSVFGView, SVFGNode > SlicedSVFGNodeRef

◆ operator++() [1/2]

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

Definition at line 1247 of file SlicedGraphs.h.

1248 {
1249 ++it;
1250 skipNonKept();
1251 return *this;
1252 }

◆ operator++() [2/2]

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

Definition at line 1253 of file SlicedGraphs.h.

1254 {
1255 SlicedSVFGNodeIter t = *this;
1256 ++*this;
1257 return t;
1258 }

◆ skipNonKept()

void SVF::SlicedSVFGNodeIter::skipNonKept ( )
inlineprivate

Definition at line 1271 of file SlicedGraphs.h.

1272 {
1273 while (it != endIt && !view->isKeptNode(it->second)) ++it;
1274 }
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 1263 of file SlicedGraphs.h.

1264 {
1265 return !(a == b);
1266 }
cJSON * a
Definition cJSON.cpp:2560
const cJSON *const b
Definition cJSON.h:255

◆ operator==

Definition at line 1259 of file SlicedGraphs.h.

1260 {
1261 return a.it == b.it;
1262 }

Member Data Documentation

◆ endIt

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

Definition at line 1270 of file SlicedGraphs.h.

1270{}, endIt{};

◆ it

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

Definition at line 1270 of file SlicedGraphs.h.

1270{}, endIt{};

◆ view

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

Definition at line 1269 of file SlicedGraphs.h.


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