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)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:212

Parameters

const llvm::APSInt& V

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)

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)

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)

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)

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)

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)

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

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

clang::QualType T

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

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:141

llvm::ImmutableList<const CXXBaseSpecifier*>
getEmptyCXXBaseList()

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:256

llvm::ImmutableList<SVal> getEmptySValList()

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:248

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)

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)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:188

Parameters

const llvm::APSInt& v

const llvm::APSInt& getMaxValue(clang::QualType T)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:196

Parameters

clang::QualType T

const llvm::APSInt& getMaxValue(
    clang::ento::APSIntType T)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:204

Parameters

clang::ento::APSIntType T

const llvm::APSInt& getMinValue(
    clang::ento::APSIntType T)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:208

Parameters

clang::ento::APSIntType T

const llvm::APSInt& getMinValue(clang::QualType T)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:200

Parameters

clang::QualType T

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)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:280

Parameters

clang::ento::SVal X

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)

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)

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)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:229

Parameters

bool b
clang::QualType T

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)

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)

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)

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)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:143

Parameters

const llvm::APSInt& X

const llvm::APSInt& getZeroWithTypeSize(
    clang::QualType T)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:224

Parameters

clang::QualType T

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)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:252

Parameters

clang::ento::SVal X
llvm::ImmutableList<SVal> L

~BasicValueFactory()

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:139