class BasicValueFactory
Declaration
class BasicValueFactory { /* full declaration omitted */ };
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:113
Member Variables
- private clang::ASTContext& Ctx
- private llvm::BumpPtrAllocator& BPAlloc
- private clang::ento::BasicValueFactory::APSIntSetTy APSIntSet
- private void* PersistentSVals = nullptr
- private void* PersistentSValPairs = nullptr
- private llvm::ImmutableList<SVal>::Factory SValListFactory
- private llvm::ImmutableList< const CXXBaseSpecifier*>::Factory CXXBaseListFactory
- private llvm::FoldingSet<CompoundValData> CompoundValDataSet
- private llvm::FoldingSet<LazyCompoundValData> LazyCompoundValDataSet
- private llvm::FoldingSet<PointerToMemberData> PointerToMemberDataSet
Method Overview
- public const llvm::APSInt & Add1(const llvm::APSInt & V)
- public BasicValueFactory(clang::ASTContext & ctx, llvm::BumpPtrAllocator & Alloc)
- public const llvm::APSInt & Convert(const llvm::APSInt & To, const llvm::APSInt & From)
- public const llvm::APSInt & Convert(clang::QualType T, const llvm::APSInt & From)
- public const llvm::APSInt & Convert(clang::ento::APSIntType TargetType, const llvm::APSInt & From)
- public const llvm::APSInt & Sub1(const llvm::APSInt & V)
- public const clang::ento::PointerToMemberData * accumCXXBase(llvm::iterator_range<CastExpr::path_const_iterator> PathRange, const nonloc::PointerToMember & PTM, const clang::CastKind & kind)
- public const llvm::APSInt * evalAPSInt(BinaryOperator::Opcode Op, const llvm::APSInt & V1, const llvm::APSInt & V2)
- public clang::ento::APSIntType getAPSIntType(clang::QualType T) const
- public const clang::ento::CompoundValData * getCompoundValData(clang::QualType T, llvm::ImmutableList<SVal> Vals)
- public clang::ASTContext & getContext() const
- public llvm::ImmutableList<const CXXBaseSpecifier *> getEmptyCXXBaseList()
- public llvm::ImmutableList<SVal> getEmptySValList()
- public const llvm::APSInt & getIntValue(uint64_t X, bool isUnsigned)
- public const clang::ento::LazyCompoundValData * getLazyCompoundValData(const clang::ento::StoreRef & store, const clang::ento::TypedValueRegion * region)
- public const llvm::APSInt & getMaxValue(const llvm::APSInt & v)
- public const llvm::APSInt & getMaxValue(clang::QualType T)
- public const llvm::APSInt & getMaxValue(clang::ento::APSIntType T)
- public const llvm::APSInt & getMinValue(clang::ento::APSIntType T)
- public const llvm::APSInt & getMinValue(clang::QualType T)
- public const llvm::APSInt & getMinValue(const llvm::APSInt & v)
- public const clang::ento::SVal * getPersistentSVal(clang::ento::SVal X)
- public const std::pair<SVal, SVal> & getPersistentSValPair(const clang::ento::SVal & V1, const clang::ento::SVal & V2)
- public const std::pair<SVal, uintptr_t> & getPersistentSValWithData(const clang::ento::SVal & V, uintptr_t Data)
- public const clang::ento::PointerToMemberData * getPointerToMemberData(const clang::NamedDecl * ND, llvm::ImmutableList<const CXXBaseSpecifier *> L)
- public const llvm::APSInt & getTruthValue(bool b, clang::QualType T)
- public const llvm::APSInt & getTruthValue(bool b)
- private const llvm::APSInt & getValue(uint64_t X, unsigned int BitWidth, bool isUnsigned)
- public const llvm::APSInt & getValue(uint64_t X, clang::QualType T)
- public const llvm::APSInt & getValue(const llvm::APInt & X, bool isUnsigned)
- public const llvm::APSInt & getValue(const llvm::APSInt & X)
- public const llvm::APSInt & getZeroWithTypeSize(clang::QualType T)
- public llvm::ImmutableList<const CXXBaseSpecifier *> prependCXXBase(const clang::CXXBaseSpecifier * CBS, llvm::ImmutableList<const CXXBaseSpecifier *> L)
- public llvm::ImmutableList<SVal> prependSVal(clang::ento::SVal X, llvm::ImmutableList<SVal> L)
- public ~BasicValueFactory()
Methods
¶const llvm::APSInt& Add1(const llvm::APSInt& V)
const llvm::APSInt& Add1(const llvm::APSInt& V)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:212
Parameters
- const llvm::APSInt& V
¶BasicValueFactory(clang::ASTContext& ctx,
llvm::BumpPtrAllocator& Alloc)
BasicValueFactory(clang::ASTContext& ctx,
llvm::BumpPtrAllocator& Alloc)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:135
Parameters
- clang::ASTContext& ctx
- llvm::BumpPtrAllocator& Alloc
¶const llvm::APSInt& Convert(
const llvm::APSInt& To,
const llvm::APSInt& From)
const llvm::APSInt& Convert(
const llvm::APSInt& To,
const llvm::APSInt& From)
Description
Convert - Create a new persistent APSInt with the same value as 'From' but with the bitwidth and signedness of 'To'.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:162
Parameters
- const llvm::APSInt& To
- const llvm::APSInt& From
¶const llvm::APSInt& Convert(
clang::QualType T,
const llvm::APSInt& From)
const llvm::APSInt& Convert(
clang::QualType T,
const llvm::APSInt& From)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:171
Parameters
- clang::QualType T
- const llvm::APSInt& From
¶const llvm::APSInt& Convert(
clang::ento::APSIntType TargetType,
const llvm::APSInt& From)
const llvm::APSInt& Convert(
clang::ento::APSIntType TargetType,
const llvm::APSInt& From)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:176
Parameters
- clang::ento::APSIntType TargetType
- const llvm::APSInt& From
¶const llvm::APSInt& Sub1(const llvm::APSInt& V)
const llvm::APSInt& Sub1(const llvm::APSInt& V)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:218
Parameters
- const llvm::APSInt& V
¶const clang::ento::PointerToMemberData*
accumCXXBase(
llvm::iterator_range<
CastExpr::path_const_iterator> PathRange,
const nonloc::PointerToMember& PTM,
const clang::CastKind& kind)
const clang::ento::PointerToMemberData*
accumCXXBase(
llvm::iterator_range<
CastExpr::path_const_iterator> PathRange,
const nonloc::PointerToMember& PTM,
const clang::CastKind& kind)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:267
Parameters
- llvm::iterator_range< CastExpr::path_const_iterator> PathRange
- const nonloc::PointerToMember& PTM
- const clang::CastKind& kind
¶const llvm::APSInt* evalAPSInt(
BinaryOperator::Opcode Op,
const llvm::APSInt& V1,
const llvm::APSInt& V2)
const llvm::APSInt* evalAPSInt(
BinaryOperator::Opcode Op,
const llvm::APSInt& V1,
const llvm::APSInt& V2)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:270
Parameters
- BinaryOperator::Opcode Op
- const llvm::APSInt& V1
- const llvm::APSInt& V2
¶clang::ento::APSIntType getAPSIntType(
clang::QualType T) const
clang::ento::APSIntType getAPSIntType(
clang::QualType T) const
Description
Returns the type of the APSInt used to store values of the given QualType.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:148
Parameters
¶const clang::ento::CompoundValData*
getCompoundValData(clang::QualType T,
llvm::ImmutableList<SVal> Vals)
const clang::ento::CompoundValData*
getCompoundValData(clang::QualType T,
llvm::ImmutableList<SVal> Vals)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:238
Parameters
- clang::QualType T
- llvm::ImmutableList<SVal> Vals
¶clang::ASTContext& getContext() const
clang::ASTContext& getContext() const
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:141
¶llvm::ImmutableList<const CXXBaseSpecifier*>
getEmptyCXXBaseList()
llvm::ImmutableList<const CXXBaseSpecifier*>
getEmptyCXXBaseList()
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:256
¶llvm::ImmutableList<SVal> getEmptySValList()
llvm::ImmutableList<SVal> getEmptySValList()
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:248
¶const llvm::APSInt& getIntValue(uint64_t X,
bool isUnsigned)
const llvm::APSInt& getIntValue(uint64_t X,
bool isUnsigned)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:183
Parameters
- uint64_t X
- bool isUnsigned
¶const clang::ento::LazyCompoundValData*
getLazyCompoundValData(
const clang::ento::StoreRef& store,
const clang::ento::TypedValueRegion* region)
const clang::ento::LazyCompoundValData*
getLazyCompoundValData(
const clang::ento::StoreRef& store,
const clang::ento::TypedValueRegion* region)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:241
Parameters
- const clang::ento::StoreRef& store
- const clang::ento::TypedValueRegion* region
¶const llvm::APSInt& getMaxValue(
const llvm::APSInt& v)
const llvm::APSInt& getMaxValue(
const llvm::APSInt& v)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:188
Parameters
- const llvm::APSInt& v
¶const llvm::APSInt& getMaxValue(clang::QualType T)
const llvm::APSInt& getMaxValue(clang::QualType T)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:196
Parameters
¶const llvm::APSInt& getMaxValue(
clang::ento::APSIntType T)
const llvm::APSInt& getMaxValue(
clang::ento::APSIntType T)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:204
Parameters
¶const llvm::APSInt& getMinValue(
clang::ento::APSIntType T)
const llvm::APSInt& getMinValue(
clang::ento::APSIntType T)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:208
Parameters
¶const llvm::APSInt& getMinValue(clang::QualType T)
const llvm::APSInt& getMinValue(clang::QualType T)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:200
Parameters
¶const llvm::APSInt& getMinValue(
const llvm::APSInt& v)
const llvm::APSInt& getMinValue(
const llvm::APSInt& v)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:192
Parameters
- const llvm::APSInt& v
¶const clang::ento::SVal* getPersistentSVal(
clang::ento::SVal X)
const clang::ento::SVal* getPersistentSVal(
clang::ento::SVal X)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:280
Parameters
¶const std::pair<SVal, SVal>&
getPersistentSValPair(const clang::ento::SVal& V1,
const clang::ento::SVal& V2)
const std::pair<SVal, SVal>&
getPersistentSValPair(const clang::ento::SVal& V1,
const clang::ento::SVal& V2)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:278
Parameters
- const clang::ento::SVal& V1
- const clang::ento::SVal& V2
¶const std::pair<SVal, uintptr_t>&
getPersistentSValWithData(
const clang::ento::SVal& V,
uintptr_t Data)
const std::pair<SVal, uintptr_t>&
getPersistentSValWithData(
const clang::ento::SVal& V,
uintptr_t Data)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:275
Parameters
- const clang::ento::SVal& V
- uintptr_t Data
¶const clang::ento::PointerToMemberData*
getPointerToMemberData(
const clang::NamedDecl* ND,
llvm::ImmutableList<const CXXBaseSpecifier*>
L)
const clang::ento::PointerToMemberData*
getPointerToMemberData(
const clang::NamedDecl* ND,
llvm::ImmutableList<const CXXBaseSpecifier*>
L)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:245
Parameters
- const clang::NamedDecl* ND
- llvm::ImmutableList<const CXXBaseSpecifier*> L
¶const llvm::APSInt& getTruthValue(
bool b,
clang::QualType T)
const llvm::APSInt& getTruthValue(
bool b,
clang::QualType T)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:229
Parameters
- bool b
- clang::QualType T
¶const llvm::APSInt& getTruthValue(bool b)
const llvm::APSInt& getTruthValue(bool b)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:234
Parameters
- bool b
¶const llvm::APSInt& getValue(
uint64_t X,
unsigned int BitWidth,
bool isUnsigned)
const llvm::APSInt& getValue(
uint64_t X,
unsigned int BitWidth,
bool isUnsigned)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:132
Parameters
- uint64_t X
- unsigned int BitWidth
- bool isUnsigned
¶const llvm::APSInt& getValue(uint64_t X,
clang::QualType T)
const llvm::APSInt& getValue(uint64_t X,
clang::QualType T)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:145
Parameters
- uint64_t X
- clang::QualType T
¶const llvm::APSInt& getValue(const llvm::APInt& X,
bool isUnsigned)
const llvm::APSInt& getValue(const llvm::APInt& X,
bool isUnsigned)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:144
Parameters
- const llvm::APInt& X
- bool isUnsigned
¶const llvm::APSInt& getValue(
const llvm::APSInt& X)
const llvm::APSInt& getValue(
const llvm::APSInt& X)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:143
Parameters
- const llvm::APSInt& X
¶const llvm::APSInt& getZeroWithTypeSize(
clang::QualType T)
const llvm::APSInt& getZeroWithTypeSize(
clang::QualType T)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:224
Parameters
¶llvm::ImmutableList<const CXXBaseSpecifier*>
prependCXXBase(
const clang::CXXBaseSpecifier* CBS,
llvm::ImmutableList<const CXXBaseSpecifier*>
L)
llvm::ImmutableList<const CXXBaseSpecifier*>
prependCXXBase(
const clang::CXXBaseSpecifier* CBS,
llvm::ImmutableList<const CXXBaseSpecifier*>
L)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:260
Parameters
- const clang::CXXBaseSpecifier* CBS
- llvm::ImmutableList<const CXXBaseSpecifier*> L
¶llvm::ImmutableList<SVal> prependSVal(
clang::ento::SVal X,
llvm::ImmutableList<SVal> L)
llvm::ImmutableList<SVal> prependSVal(
clang::ento::SVal X,
llvm::ImmutableList<SVal> L)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:252
Parameters
- clang::ento::SVal X
- llvm::ImmutableList<SVal> L
¶~BasicValueFactory()
~BasicValueFactory()
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:139