clang 22.0.0git
clang::ento::iterator Namespace Reference

Classes

struct  ContainerData
class  ContainerMap
struct  IteratorPosition
class  IteratorRegionMap
class  IteratorSymbolMap

Typedefs

using IteratorSymbolMapTy
using IteratorRegionMapTy
using ContainerMapTy

Functions

bool isIteratorType (const QualType &Type)
bool isIterator (const CXXRecordDecl *CRD)
bool isComparisonOperator (OverloadedOperatorKind OK)
bool isInsertCall (const FunctionDecl *Func)
bool isEmplaceCall (const FunctionDecl *Func)
bool isEraseCall (const FunctionDecl *Func)
bool isEraseAfterCall (const FunctionDecl *Func)
bool isAccessOperator (OverloadedOperatorKind OK)
bool isAccessOperator (UnaryOperatorKind OK)
bool isAccessOperator (BinaryOperatorKind OK)
bool isDereferenceOperator (OverloadedOperatorKind OK)
bool isDereferenceOperator (UnaryOperatorKind OK)
bool isDereferenceOperator (BinaryOperatorKind OK)
bool isIncrementOperator (OverloadedOperatorKind OK)
bool isIncrementOperator (UnaryOperatorKind OK)
bool isDecrementOperator (OverloadedOperatorKind OK)
bool isDecrementOperator (UnaryOperatorKind OK)
bool isRandomIncrOrDecrOperator (OverloadedOperatorKind OK)
bool isRandomIncrOrDecrOperator (BinaryOperatorKind OK)
const ContainerDatagetContainerData (ProgramStateRef State, const MemRegion *Cont)
const IteratorPositiongetIteratorPosition (ProgramStateRef State, SVal Val)
ProgramStateRef setIteratorPosition (ProgramStateRef State, SVal Val, const IteratorPosition &Pos)
ProgramStateRef createIteratorPosition (ProgramStateRef State, SVal Val, const MemRegion *Cont, ConstCFGElementRef Elem, const LocationContext *LCtx, unsigned blockCount)
ProgramStateRef advancePosition (ProgramStateRef State, SVal Iter, OverloadedOperatorKind Op, SVal Distance)
ProgramStateRef assumeNoOverflow (ProgramStateRef State, SymbolRef Sym, long Scale)
bool compare (ProgramStateRef State, SymbolRef Sym1, SymbolRef Sym2, BinaryOperator::Opcode Opc)
bool compare (ProgramStateRef State, NonLoc NL1, NonLoc NL2, BinaryOperator::Opcode Opc)

Typedef Documentation

◆ ContainerMapTy

Initial value:
#define CLANG_ENTO_PROGRAMSTATE_MAP(Key, Value)
Helper for registering a map trait.
MemRegion - The root abstract class for all memory regions.
Definition MemRegion.h:98

Definition at line 118 of file Iterator.h.

◆ IteratorRegionMapTy

◆ IteratorSymbolMapTy

Initial value:

Definition at line 114 of file Iterator.h.

Function Documentation

◆ advancePosition()

◆ assumeNoOverflow()

◆ compare() [1/2]

bool clang::ento::iterator::compare ( ProgramStateRef State,
NonLoc NL1,
NonLoc NL2,
BinaryOperator::Opcode Opc )

Definition at line 303 of file Iterator.cpp.

References clang::isa().

◆ compare() [2/2]

bool clang::ento::iterator::compare ( ProgramStateRef State,
SymbolRef Sym1,
SymbolRef Sym2,
BinaryOperator::Opcode Opc )

Definition at line 298 of file Iterator.cpp.

References compare().

Referenced by compare().

◆ createIteratorPosition()

ProgramStateRef clang::ento::iterator::createIteratorPosition ( ProgramStateRef State,
SVal Val,
const MemRegion * Cont,
ConstCFGElementRef Elem,
const LocationContext * LCtx,
unsigned blockCount )

◆ getContainerData()

const ContainerData * clang::ento::iterator::getContainerData ( ProgramStateRef State,
const MemRegion * Cont )

Definition at line 179 of file Iterator.cpp.

◆ getIteratorPosition()

const IteratorPosition * clang::ento::iterator::getIteratorPosition ( ProgramStateRef State,
SVal Val )

◆ isAccessOperator() [1/3]

bool clang::ento::iterator::isAccessOperator ( BinaryOperatorKind OK)

Definition at line 136 of file Iterator.cpp.

References isDereferenceOperator(), and isRandomIncrOrDecrOperator().

◆ isAccessOperator() [2/3]

bool clang::ento::iterator::isAccessOperator ( OverloadedOperatorKind OK)

◆ isAccessOperator() [3/3]

bool clang::ento::iterator::isAccessOperator ( UnaryOperatorKind OK)

◆ isComparisonOperator()

bool clang::ento::iterator::isComparisonOperator ( OverloadedOperatorKind OK)

Definition at line 71 of file Iterator.cpp.

◆ isDecrementOperator() [1/2]

bool clang::ento::iterator::isDecrementOperator ( OverloadedOperatorKind OK)

Definition at line 161 of file Iterator.cpp.

Referenced by isAccessOperator(), and isAccessOperator().

◆ isDecrementOperator() [2/2]

bool clang::ento::iterator::isDecrementOperator ( UnaryOperatorKind OK)

Definition at line 165 of file Iterator.cpp.

◆ isDereferenceOperator() [1/3]

bool clang::ento::iterator::isDereferenceOperator ( BinaryOperatorKind OK)

Definition at line 149 of file Iterator.cpp.

◆ isDereferenceOperator() [2/3]

bool clang::ento::iterator::isDereferenceOperator ( OverloadedOperatorKind OK)

Definition at line 140 of file Iterator.cpp.

Referenced by isAccessOperator(), isAccessOperator(), and isAccessOperator().

◆ isDereferenceOperator() [3/3]

bool clang::ento::iterator::isDereferenceOperator ( UnaryOperatorKind OK)

Definition at line 145 of file Iterator.cpp.

◆ isEmplaceCall()

bool clang::ento::iterator::isEmplaceCall ( const FunctionDecl * Func)

Definition at line 87 of file Iterator.cpp.

References clang::Func, and isIteratorType().

◆ isEraseAfterCall()

bool clang::ento::iterator::isEraseAfterCall ( const FunctionDecl * Func)

Definition at line 112 of file Iterator.cpp.

References clang::Func, and isIteratorType().

◆ isEraseCall()

bool clang::ento::iterator::isEraseCall ( const FunctionDecl * Func)

Definition at line 98 of file Iterator.cpp.

References clang::Func, and isIteratorType().

◆ isIncrementOperator() [1/2]

bool clang::ento::iterator::isIncrementOperator ( OverloadedOperatorKind OK)

Definition at line 153 of file Iterator.cpp.

Referenced by isAccessOperator(), and isAccessOperator().

◆ isIncrementOperator() [2/2]

bool clang::ento::iterator::isIncrementOperator ( UnaryOperatorKind OK)

Definition at line 157 of file Iterator.cpp.

◆ isInsertCall()

bool clang::ento::iterator::isInsertCall ( const FunctionDecl * Func)

Definition at line 76 of file Iterator.cpp.

References clang::Func, and isIteratorType().

◆ isIterator()

bool clang::ento::iterator::isIterator ( const CXXRecordDecl * CRD)

◆ isIteratorType()

bool clang::ento::iterator::isIteratorType ( const QualType & Type)

◆ isRandomIncrOrDecrOperator() [1/2]

bool clang::ento::iterator::isRandomIncrOrDecrOperator ( BinaryOperatorKind OK)

Definition at line 174 of file Iterator.cpp.

◆ isRandomIncrOrDecrOperator() [2/2]

bool clang::ento::iterator::isRandomIncrOrDecrOperator ( OverloadedOperatorKind OK)

Definition at line 169 of file Iterator.cpp.

Referenced by isAccessOperator(), and isAccessOperator().

◆ setIteratorPosition()

ProgramStateRef clang::ento::iterator::setIteratorPosition ( ProgramStateRef State,
SVal Val,
const IteratorPosition & Pos )