#include "Iterator.h"
namespace clang {
namespace ento {
namespace iterator {
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 ContainerData *getContainerData(ProgramStateRef State,
const MemRegion *Cont) { … }
const IteratorPosition *getIteratorPosition(ProgramStateRef State, SVal Val) { … }
ProgramStateRef setIteratorPosition(ProgramStateRef State, SVal Val,
const IteratorPosition &Pos) { … }
ProgramStateRef createIteratorPosition(ProgramStateRef State, SVal Val,
const MemRegion *Cont, const Stmt *S,
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) { … }
}
}
}