clang 22.0.0git
|
#include "clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h"
Public Member Functions | |
BasicValueFactory (ASTContext &ctx, llvm::BumpPtrAllocator &Alloc) | |
~BasicValueFactory () | |
ASTContext & | getContext () const |
APSIntPtr | getValue (const llvm::APSInt &X) |
APSIntPtr | getValue (const llvm::APInt &X, bool isUnsigned) |
APSIntPtr | getValue (uint64_t X, QualType T) |
APSIntType | getAPSIntType (QualType T) const |
Returns the type of the APSInt used to store values of the given QualType. | |
APSIntPtr | Convert (const llvm::APSInt &To, const llvm::APSInt &From) |
Convert - Create a new persistent APSInt with the same value as 'From' but with the bitwidth and signedness of 'To'. | |
APSIntPtr | Convert (QualType T, const llvm::APSInt &From) |
APSIntPtr | Convert (APSIntType TargetType, const llvm::APSInt &From) |
APSIntPtr | getIntValue (uint64_t X, bool isUnsigned) |
APSIntPtr | getMaxValue (const llvm::APSInt &v) |
APSIntPtr | getMinValue (const llvm::APSInt &v) |
APSIntPtr | getMaxValue (QualType T) |
APSIntPtr | getMinValue (QualType T) |
APSIntPtr | getMaxValue (APSIntType T) |
APSIntPtr | getMinValue (APSIntType T) |
APSIntPtr | Add1 (const llvm::APSInt &V) |
APSIntPtr | Sub1 (const llvm::APSInt &V) |
APSIntPtr | getZeroWithTypeSize (QualType T) |
APSIntPtr | getTruthValue (bool b, QualType T) |
APSIntPtr | getTruthValue (bool b) |
const CompoundValData * | getCompoundValData (QualType T, llvm::ImmutableList< SVal > Vals) |
const LazyCompoundValData * | getLazyCompoundValData (const StoreRef &store, const TypedValueRegion *region) |
const PointerToMemberData * | getPointerToMemberData (const NamedDecl *ND, llvm::ImmutableList< const CXXBaseSpecifier * > L) |
llvm::ImmutableList< SVal > | getEmptySValList () |
llvm::ImmutableList< SVal > | prependSVal (SVal X, llvm::ImmutableList< SVal > L) |
llvm::ImmutableList< const CXXBaseSpecifier * > | getEmptyCXXBaseList () |
llvm::ImmutableList< const CXXBaseSpecifier * > | prependCXXBase (const CXXBaseSpecifier *CBS, llvm::ImmutableList< const CXXBaseSpecifier * > L) |
const PointerToMemberData * | accumCXXBase (llvm::iterator_range< CastExpr::path_const_iterator > PathRange, const nonloc::PointerToMember &PTM, const clang::CastKind &kind) |
std::optional< APSIntPtr > | evalAPSInt (BinaryOperator::Opcode Op, const llvm::APSInt &V1, const llvm::APSInt &V2) |
const std::pair< SVal, uintptr_t > & | getPersistentSValWithData (const SVal &V, uintptr_t Data) |
const std::pair< SVal, SVal > & | getPersistentSValPair (const SVal &V1, const SVal &V2) |
const SVal * | getPersistentSVal (SVal X) |
Definition at line 114 of file BasicValueFactory.h.
|
inline |
Definition at line 136 of file BasicValueFactory.h.
BasicValueFactory::~BasicValueFactory | ( | ) |
Definition at line 79 of file BasicValueFactory.cpp.
const PointerToMemberData * BasicValueFactory::accumCXXBase | ( | llvm::iterator_range< CastExpr::path_const_iterator > | PathRange, |
const nonloc::PointerToMember & | PTM, | ||
const clang::CastKind & | kind ) |
Definition at line 188 of file BasicValueFactory.cpp.
References clang::cast(), getPointerToMemberData(), clang::ento::nonloc::PointerToMember::getPTMData(), hasNoRepeatedElements(), clang::isa(), and prependCXXBase().
|
inline |
Definition at line 210 of file BasicValueFactory.h.
|
inline |
Definition at line 182 of file BasicValueFactory.h.
References clang::ento::APSIntType::convert().
|
inline |
Convert - Create a new persistent APSInt with the same value as 'From' but with the bitwidth and signedness of 'To'.
Definition at line 169 of file BasicValueFactory.h.
References clang::ento::APSIntType::convert().
Referenced by Convert(), clang::ento::ProgramState::getSVal(), and clang::ento::SMTConstraintManager::getSymVal().
Definition at line 177 of file BasicValueFactory.h.
References Convert(), getAPSIntType(), and clang::T.
std::optional< APSIntPtr > BasicValueFactory::evalAPSInt | ( | BinaryOperator::Opcode | Op, |
const llvm::APSInt & | V1, | ||
const llvm::APSInt & | V2 ) |
Definition at line 246 of file BasicValueFactory.cpp.
References getTruthValue().
Referenced by clang::ento::SMTConstraintManager::getSymVal().
|
inline |
Returns the type of the APSInt used to store values of the given QualType.
Definition at line 149 of file BasicValueFactory.h.
References clang::ento::Loc::isLocType(), and clang::T.
Referenced by clang::ento::iterator::assumeNoOverflow(), clang::ento::RangedConstraintManager::assumeSymInclusiveRange(), clang::ento::RangedConstraintManager::assumeSymRel(), Convert(), doRearrangeUnchecked(), getMaxValue(), getMinValue(), getValue(), and isWithinConstantOverflowBounds().
const CompoundValData * BasicValueFactory::getCompoundValData | ( | QualType | T, |
llvm::ImmutableList< SVal > | Vals ) |
Definition at line 125 of file BasicValueFactory.cpp.
References clang::ento::CompoundValData::Profile(), and clang::T.
|
inline |
Definition at line 142 of file BasicValueFactory.h.
Referenced by clang::ento::SMTConstraintManager::assumeSym(), clang::ento::SMTConstraintManager::assumeSymInclusiveRange(), clang::ento::SMTConstraintManager::canReasonAbout(), clang::ento::SMTConstraintManager::checkNull(), and clang::ento::SMTConstraintManager::getSymVal().
|
inline |
Definition at line 254 of file BasicValueFactory.h.
|
inline |
Definition at line 246 of file BasicValueFactory.h.
Referenced by clang::ento::ExprEngine::ConstructInitList(), and processArgument().
Definition at line 189 of file BasicValueFactory.h.
References isUnsigned(), clang::T, and X.
Referenced by getStartIndex().
const LazyCompoundValData * BasicValueFactory::getLazyCompoundValData | ( | const StoreRef & | store, |
const TypedValueRegion * | region ) |
Definition at line 142 of file BasicValueFactory.cpp.
References clang::ento::LazyCompoundValData::Profile().
|
inline |
Definition at line 206 of file BasicValueFactory.h.
References clang::T.
|
inline |
Definition at line 194 of file BasicValueFactory.h.
References getMaxValue().
Referenced by getMaxValue().
Definition at line 202 of file BasicValueFactory.h.
References getAPSIntType(), getMaxValue(), and clang::T.
Referenced by getMaxValue().
|
inline |
Definition at line 208 of file BasicValueFactory.h.
References clang::T.
|
inline |
Definition at line 198 of file BasicValueFactory.h.
References getMinValue().
Referenced by clang::ento::ProgramState::assumeInBoundDual(), and getMinValue().
Definition at line 204 of file BasicValueFactory.h.
References getAPSIntType(), getMinValue(), and clang::T.
Referenced by getMinValue().
Definition at line 380 of file BasicValueFactory.cpp.
References getPersistentSValWithData(), and X.
const std::pair< SVal, SVal > & BasicValueFactory::getPersistentSValPair | ( | const SVal & | V1, |
const SVal & | V2 ) |
Definition at line 357 of file BasicValueFactory.cpp.
References clang::ento::SVal::Profile().
const std::pair< SVal, uintptr_t > & BasicValueFactory::getPersistentSValWithData | ( | const SVal & | V, |
uintptr_t | Data ) |
Definition at line 333 of file BasicValueFactory.cpp.
References clang::Data, and V.
Referenced by getPersistentSVal().
const PointerToMemberData * BasicValueFactory::getPointerToMemberData | ( | const NamedDecl * | ND, |
llvm::ImmutableList< const CXXBaseSpecifier * > | L ) |
Definition at line 159 of file BasicValueFactory.cpp.
References clang::ento::PointerToMemberData::Profile().
Referenced by accumCXXBase().
Definition at line 232 of file BasicValueFactory.h.
References b, and getTruthValue().
Definition at line 227 of file BasicValueFactory.h.
Referenced by evalAPSInt(), and getTruthValue().
Definition at line 108 of file BasicValueFactory.cpp.
References isUnsigned(), V, and X.
APSIntPtr BasicValueFactory::getValue | ( | const llvm::APSInt & | X | ) |
Definition at line 90 of file BasicValueFactory.cpp.
References clang::ento::APSIntPtr::unsafeConstructor(), and X.
Definition at line 120 of file BasicValueFactory.cpp.
References getAPSIntType(), clang::T, and X.
Definition at line 222 of file BasicValueFactory.h.
References clang::T.
|
inline |
Definition at line 258 of file BasicValueFactory.h.
Referenced by accumCXXBase().
|
inline |
Definition at line 250 of file BasicValueFactory.h.
References X.
Referenced by clang::ento::ExprEngine::ConstructInitList(), and processArgument().
|
inline |
Definition at line 216 of file BasicValueFactory.h.