clang 20.0.0git
|
Classes | |
struct | ContainerData |
class | ContainerMap |
struct | IteratorPosition |
class | IteratorRegionMap |
class | IteratorSymbolMap |
Typedefs | |
using | IteratorSymbolMapTy = CLANG_ENTO_PROGRAMSTATE_MAP(SymbolRef, IteratorPosition) |
using | IteratorRegionMapTy = CLANG_ENTO_PROGRAMSTATE_MAP(const MemRegion *, IteratorPosition) |
using | ContainerMapTy = CLANG_ENTO_PROGRAMSTATE_MAP(const MemRegion *, ContainerData) |
using clang::ento::iterator::ContainerMapTy = typedef CLANG_ENTO_PROGRAMSTATE_MAP(const MemRegion *, ContainerData) |
Definition at line 118 of file Iterator.h.
using clang::ento::iterator::IteratorRegionMapTy = typedef CLANG_ENTO_PROGRAMSTATE_MAP(const MemRegion *, IteratorPosition) |
Definition at line 116 of file Iterator.h.
using clang::ento::iterator::IteratorSymbolMapTy = typedef CLANG_ENTO_PROGRAMSTATE_MAP(SymbolRef, IteratorPosition) |
Definition at line 114 of file Iterator.h.
ProgramStateRef clang::ento::iterator::advancePosition | ( | ProgramStateRef | State, |
SVal | Iter, | ||
OverloadedOperatorKind | Op, | ||
SVal | Distance | ||
) |
Definition at line 223 of file Iterator.cpp.
References clang::ento::SVal::getAs(), getIteratorPosition(), clang::ento::SVal::getType(), clang::ento::nonloc::ConcreteInt::getValue(), Iter, and setIteratorPosition().
ProgramStateRef clang::ento::iterator::assumeNoOverflow | ( | ProgramStateRef | State, |
SymbolRef | Sym, | ||
long | Scale | ||
) |
Definition at line 263 of file Iterator.cpp.
References clang::ento::SValBuilder::evalBinOpNN(), clang::ento::BasicValueFactory::getAPSIntType(), clang::ento::SVal::getAs(), clang::ento::SValBuilder::getBasicValueFactory(), clang::ento::SValBuilder::getConditionType(), clang::ento::APSIntType::getMaxValue(), clang::ento::SymExpr::getType(), clang::ento::APSIntType::getValue(), clang::Type::isSignedIntegerOrEnumerationType(), clang::Max, clang::Min, and clang::T.
Referenced by createIteratorPosition().
bool clang::ento::iterator::compare | ( | ProgramStateRef | State, |
NonLoc | NL1, | ||
NonLoc | NL2, | ||
BinaryOperator::Opcode | Opc | ||
) |
Definition at line 302 of file Iterator.cpp.
bool clang::ento::iterator::compare | ( | ProgramStateRef | State, |
SymbolRef | Sym1, | ||
SymbolRef | Sym2, | ||
BinaryOperator::Opcode | Opc | ||
) |
ProgramStateRef clang::ento::iterator::createIteratorPosition | ( | ProgramStateRef | State, |
SVal | Val, | ||
const MemRegion * | Cont, | ||
const Stmt * | S, | ||
const LocationContext * | LCtx, | ||
unsigned | blockCount | ||
) |
Definition at line 209 of file Iterator.cpp.
References assumeNoOverflow(), clang::ento::iterator::IteratorPosition::getPosition(), and setIteratorPosition().
const ContainerData * clang::ento::iterator::getContainerData | ( | ProgramStateRef | State, |
const MemRegion * | Cont | ||
) |
Definition at line 179 of file Iterator.cpp.
const IteratorPosition * clang::ento::iterator::getIteratorPosition | ( | ProgramStateRef | State, |
SVal | Val | ||
) |
Definition at line 184 of file Iterator.cpp.
References clang::ento::SVal::getAs(), clang::ento::SVal::getAsRegion(), and clang::ento::SVal::getAsSymbol().
Referenced by advancePosition().
bool clang::ento::iterator::isAccessOperator | ( | BinaryOperatorKind | OK | ) |
Definition at line 136 of file Iterator.cpp.
References isDereferenceOperator(), and isRandomIncrOrDecrOperator().
bool clang::ento::iterator::isAccessOperator | ( | OverloadedOperatorKind | OK | ) |
Definition at line 126 of file Iterator.cpp.
References isDecrementOperator(), isDereferenceOperator(), isIncrementOperator(), and isRandomIncrOrDecrOperator().
bool clang::ento::iterator::isAccessOperator | ( | UnaryOperatorKind | OK | ) |
Definition at line 131 of file Iterator.cpp.
References isDecrementOperator(), isDereferenceOperator(), and isIncrementOperator().
bool clang::ento::iterator::isComparisonOperator | ( | OverloadedOperatorKind | OK | ) |
Definition at line 71 of file Iterator.cpp.
bool clang::ento::iterator::isDecrementOperator | ( | OverloadedOperatorKind | OK | ) |
Definition at line 161 of file Iterator.cpp.
Referenced by isAccessOperator().
bool clang::ento::iterator::isDecrementOperator | ( | UnaryOperatorKind | OK | ) |
Definition at line 165 of file Iterator.cpp.
bool clang::ento::iterator::isDereferenceOperator | ( | BinaryOperatorKind | OK | ) |
Definition at line 149 of file Iterator.cpp.
bool clang::ento::iterator::isDereferenceOperator | ( | OverloadedOperatorKind | OK | ) |
Definition at line 140 of file Iterator.cpp.
Referenced by isAccessOperator().
bool clang::ento::iterator::isDereferenceOperator | ( | UnaryOperatorKind | OK | ) |
Definition at line 145 of file Iterator.cpp.
bool clang::ento::iterator::isEmplaceCall | ( | const FunctionDecl * | Func | ) |
Definition at line 87 of file Iterator.cpp.
References clang::Func, and isIteratorType().
bool clang::ento::iterator::isEraseAfterCall | ( | const FunctionDecl * | Func | ) |
Definition at line 112 of file Iterator.cpp.
References clang::Func, and isIteratorType().
bool clang::ento::iterator::isEraseCall | ( | const FunctionDecl * | Func | ) |
Definition at line 98 of file Iterator.cpp.
References clang::Func, and isIteratorType().
bool clang::ento::iterator::isIncrementOperator | ( | OverloadedOperatorKind | OK | ) |
Definition at line 153 of file Iterator.cpp.
Referenced by isAccessOperator().
bool clang::ento::iterator::isIncrementOperator | ( | UnaryOperatorKind | OK | ) |
Definition at line 157 of file Iterator.cpp.
bool clang::ento::iterator::isInsertCall | ( | const FunctionDecl * | Func | ) |
Definition at line 76 of file Iterator.cpp.
References clang::Func, and isIteratorType().
bool clang::ento::iterator::isIterator | ( | const CXXRecordDecl * | CRD | ) |
Definition at line 27 of file Iterator.cpp.
References clang::AS_public, clang::NamedDecl::getName(), and clang::CXXRecordDecl::methods().
Referenced by isIteratorType().
Definition at line 19 of file Iterator.cpp.
References clang::Type::getAsCXXRecordDecl(), clang::Type::getUnqualifiedDesugaredType(), isIterator(), and clang::Type::isPointerType().
Referenced by isEmplaceCall(), isEraseAfterCall(), isEraseCall(), and isInsertCall().
bool clang::ento::iterator::isRandomIncrOrDecrOperator | ( | BinaryOperatorKind | OK | ) |
Definition at line 174 of file Iterator.cpp.
bool clang::ento::iterator::isRandomIncrOrDecrOperator | ( | OverloadedOperatorKind | OK | ) |
Definition at line 169 of file Iterator.cpp.
Referenced by isAccessOperator().
ProgramStateRef clang::ento::iterator::setIteratorPosition | ( | ProgramStateRef | State, |
SVal | Val, | ||
const IteratorPosition & | Pos | ||
) |
Definition at line 196 of file Iterator.cpp.
References clang::ento::SVal::getAs(), clang::ento::SVal::getAsRegion(), and clang::ento::SVal::getAsSymbol().
Referenced by advancePosition(), and createIteratorPosition().