Static Value-Flow Analysis
|
#include <PointsTo.h>
Public Types | |
using | iterator_category = std::forward_iterator_tag |
using | value_type = u32_t |
using | difference_type = std::ptrdiff_t |
using | pointer = u32_t * |
using | reference = u32_t & |
Public Member Functions | |
PointsToIterator ()=delete | |
Deleted because we don't want iterators with null pt. | |
PointsToIterator (const PointsToIterator &pt) | |
PointsToIterator (PointsToIterator &&pt) noexcept | |
PointsToIterator (const PointsTo *pt, bool end=false) | |
PointsToIterator & | operator= (const PointsToIterator &rhs) |
PointsToIterator & | operator= (PointsToIterator &&rhs) noexcept |
const PointsToIterator & | operator++ () |
Pre-increment: ++it. | |
const PointsToIterator | operator++ (int) |
Post-increment: it++. | |
u32_t | operator* () const |
Dereference: *it. | |
bool | operator== (const PointsToIterator &rhs) const |
Equality: *this == rhs. | |
bool | operator!= (const PointsToIterator &rhs) const |
Inequality: *this != rhs. | |
Private Member Functions | |
bool | atEnd () const |
Private Attributes | ||
const PointsTo * | pt | |
PointsTo we are iterating over. | ||
union { | ||
SparseBitVector ::iterator sbvIt | ||
CoreBitVector::iterator cbvIt | ||
BitVector::iterator bvIt | ||
}; | ||
Definition at line 181 of file PointsTo.h.
using SVF::PointsTo::PointsToIterator::difference_type = std::ptrdiff_t |
Definition at line 186 of file PointsTo.h.
using SVF::PointsTo::PointsToIterator::iterator_category = std::forward_iterator_tag |
Definition at line 184 of file PointsTo.h.
Definition at line 187 of file PointsTo.h.
Definition at line 188 of file PointsTo.h.
Definition at line 185 of file PointsTo.h.
|
delete |
Deleted because we don't want iterators with null pt.
SVF::PointsTo::PointsToIterator::PointsToIterator | ( | const PointsToIterator & | pt | ) |
Definition at line 411 of file PointsTo.cpp.
|
noexcept |
Definition at line 433 of file PointsTo.cpp.
|
explicit |
Returns an iterator to the beginning of pt if end is false, and to the end of pt if end is true.
Definition at line 389 of file PointsTo.cpp.
|
private |
Definition at line 552 of file PointsTo.cpp.
bool SVF::PointsTo::PointsToIterator::operator!= | ( | const PointsToIterator & | rhs | ) | const |
NodeID SVF::PointsTo::PointsToIterator::operator* | ( | ) | const |
Dereference: *it.
Definition at line 516 of file PointsTo.cpp.
const PointsTo::PointsToIterator & SVF::PointsTo::PointsToIterator::operator++ | ( | ) |
const PointsTo::PointsToIterator SVF::PointsTo::PointsToIterator::operator++ | ( | int | ) |
Post-increment: it++.
Definition at line 508 of file PointsTo.cpp.
PointsTo::PointsToIterator & SVF::PointsTo::PointsToIterator::operator= | ( | const PointsToIterator & | rhs | ) |
Definition at line 455 of file PointsTo.cpp.
|
noexcept |
Definition at line 476 of file PointsTo.cpp.
bool SVF::PointsTo::PointsToIterator::operator== | ( | const PointsToIterator & | rhs | ) | const |
Equality: *this == rhs.
Definition at line 529 of file PointsTo.cpp.
union { ... } SVF::PointsTo::PointsToIterator |
Iterator into the backing data structure. Discriminated by pt->type. TODO: std::variant when we move to C++17.
BitVector::iterator SVF::PointsTo::PointsToIterator::bvIt |
Definition at line 229 of file PointsTo.h.
CoreBitVector::iterator SVF::PointsTo::PointsToIterator::cbvIt |
Definition at line 228 of file PointsTo.h.
PointsTo we are iterating over.
Definition at line 222 of file PointsTo.h.
SparseBitVector ::iterator SVF::PointsTo::PointsToIterator::sbvIt |
Definition at line 227 of file PointsTo.h.