clang: clang::ento::MemRegionManager Class Reference (original) (raw)

#include "[clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h](MemRegion%5F8h%5Fsource.html)"

Public Member Functions
MemRegionManager (ASTContext &c, llvm::BumpPtrAllocator &a)
~MemRegionManager ()
ASTContext & getContext ()
const ASTContext & getContext () const
llvm::BumpPtrAllocator & getAllocator ()
DefinedOrUnknownSVal getStaticSize (const MemRegion *MR, SValBuilder &SVB) const
const StackLocalsSpaceRegion * getStackLocalsRegion (const StackFrameContext *STC)
getStackLocalsRegion - Retrieve the memory region associated with the specified stack frame.
const StackArgumentsSpaceRegion * getStackArgumentsRegion (const StackFrameContext *STC)
getStackArgumentsRegion - Retrieve the memory region associated with function/method arguments of the specified stack frame.
const GlobalsSpaceRegion * getGlobalsRegion (MemRegion::Kind K=MemRegion::GlobalInternalSpaceRegionKind, const CodeTextRegion *R=nullptr)
getGlobalsRegion - Retrieve the memory region associated with global variables.
const HeapSpaceRegion * getHeapRegion ()
getHeapRegion - Retrieve the memory region associated with the generic "heap".
const UnknownSpaceRegion * getUnknownRegion ()
getUnknownRegion - Retrieve the memory region associated with unknown memory space.
const CodeSpaceRegion * getCodeRegion ()
const AllocaRegion * getAllocaRegion (const Expr *Ex, unsigned Cnt, const LocationContext *LC)
getAllocaRegion - Retrieve a region associated with a call to alloca().
const CompoundLiteralRegion * getCompoundLiteralRegion (const CompoundLiteralExpr *CL, const LocationContext *LC)
getCompoundLiteralRegion - Retrieve the region associated with a given CompoundLiteral.
const CXXThisRegion * getCXXThisRegion (QualType thisPointerTy, const LocationContext *LC)
getCXXThisRegion - Retrieve the [artificial] region associated with the parameter 'this'.
const SymbolicRegion * getSymbolicRegion (SymbolRef Sym, const MemSpaceRegion *MemSpace=nullptr)
Retrieve or create a "symbolic" memory region.
const SymbolicRegion * getSymbolicHeapRegion (SymbolRef sym)
Return a unique symbolic region belonging to heap memory space.
const StringRegion * getStringRegion (const StringLiteral *Str)
const ObjCStringRegion * getObjCStringRegion (const ObjCStringLiteral *Str)
const VarRegion * getVarRegion (const VarDecl *VD, const LocationContext *LC)
getVarRegion - Retrieve or create the memory region associated with a specified VarDecl and LocationContext.
const NonParamVarRegion * getNonParamVarRegion (const VarDecl *VD, const MemRegion *superR)
getVarRegion - Retrieve or create the memory region associated with a specified VarDecl and LocationContext.
const ParamVarRegion * getParamVarRegion (const Expr *OriginExpr, unsigned Index, const LocationContext *LC)
getParamVarRegion - Retrieve or create the memory region associated with a specified CallExpr, Index and LocationContext.
const ElementRegion * getElementRegion (QualType elementType, NonLoc Idx, const SubRegion *superRegion, const ASTContext &Ctx)
getElementRegion - Retrieve the memory region associated with the associated element type, index, and super region.
const ElementRegion * getElementRegionWithSuper (const ElementRegion *ER, const SubRegion *superRegion)
const FieldRegion * getFieldRegion (const FieldDecl *fd, const SubRegion *superRegion)
getFieldRegion - Retrieve or create the memory region associated with a specified FieldDecl.
const FieldRegion * getFieldRegionWithSuper (const FieldRegion *FR, const SubRegion *superRegion)
const ObjCIvarRegion * getObjCIvarRegion (const ObjCIvarDecl *ivd, const SubRegion *superRegion)
getObjCIvarRegion - Retrieve or create the memory region associated with a specified Objective-c instance variable.
const CXXTempObjectRegion * getCXXTempObjectRegion (Expr const *Ex, LocationContext const *LC)
const CXXLifetimeExtendedObjectRegion * getCXXLifetimeExtendedObjectRegion (Expr const *Ex, ValueDecl const *VD, LocationContext const *LC)
Create a CXXLifetimeExtendedObjectRegion for temporaries which are lifetime-extended by local references.
const CXXLifetimeExtendedObjectRegion * getCXXStaticLifetimeExtendedObjectRegion (const Expr *Ex, ValueDecl const *VD)
Create a CXXLifetimeExtendedObjectRegion for temporaries which are lifetime-extended by static references.
const CXXBaseObjectRegion * getCXXBaseObjectRegion (const CXXRecordDecl *BaseClass, const SubRegion *Super, bool IsVirtual)
Create a CXXBaseObjectRegion with the given base class for region Super.
const CXXBaseObjectRegion * getCXXBaseObjectRegionWithSuper (const CXXBaseObjectRegion *baseReg, const SubRegion *superRegion)
Create a CXXBaseObjectRegion with the same CXXRecordDecl but a different super region.
const CXXDerivedObjectRegion * getCXXDerivedObjectRegion (const CXXRecordDecl *BaseClass, const SubRegion *Super)
Create a CXXDerivedObjectRegion with the given derived class for region Super.
const FunctionCodeRegion * getFunctionCodeRegion (const NamedDecl *FD)
const BlockCodeRegion * getBlockCodeRegion (const BlockDecl *BD, CanQualType locTy, AnalysisDeclContext *AC)
const BlockDataRegion * getBlockDataRegion (const BlockCodeRegion *bc, const LocationContext *lc, unsigned blockCount)
getBlockDataRegion - Get the memory region associated with an instance of a block.

Definition at line 1404 of file MemRegion.h.

clang::ento::MemRegionManager::MemRegionManager ( ASTContext & c, llvm::BumpPtrAllocator & a ) inline

~MemRegionManager()

MemRegionManager::~MemRegionManager ( ) default

getAllocaRegion()

getAllocator()

llvm::BumpPtrAllocator & clang::ento::MemRegionManager::getAllocator ( ) inline

getBlockCodeRegion()

getBlockDataRegion()

getCodeRegion()

getCompoundLiteralRegion()

getContext() [1/2]

ASTContext & clang::ento::MemRegionManager::getContext ( ) inline

getContext() [2/2]

const ASTContext & clang::ento::MemRegionManager::getContext ( ) const inline

getCXXBaseObjectRegion()

getCXXBaseObjectRegionWithSuper()

getCXXDerivedObjectRegion()

getCXXLifetimeExtendedObjectRegion()

getCXXStaticLifetimeExtendedObjectRegion()

getCXXTempObjectRegion()

getCXXThisRegion()

getElementRegion()

getElementRegion - Retrieve the memory region associated with the associated element type, index, and super region.

Definition at line 1193 of file MemRegion.cpp.

References clang::ASTContext::getCanonicalType(), clang::CanQual< T >::getUnqualifiedType(), and clang::T.

Referenced by bindRequiredArrayElementToEnvironment(), clang::ento::ExprEngine::computeObjectUnderConstruction(), getElementRegionWithSuper(), clang::ento::StoreManager::GetElementZeroRegion(), clang::ento::StoreManager::getLValueElement(), clang::ento::StoreManager::MakeElementRegion(), and clang::ento::ExprEngine::VisitCXXNewExpr().

getElementRegionWithSuper()

getFieldRegion()

getFieldRegion - Retrieve or create the memory region associated with a specified FieldDecl.

'superRegion' corresponds to the containing memory region (which typically represents the memory representing a structure or class).

Definition at line 1238 of file MemRegion.cpp.

Referenced by getFieldRegionWithSuper().

getFieldRegionWithSuper()

getFunctionCodeRegion()

getGlobalsRegion()

getHeapRegion()

getNonParamVarRegion()

getObjCIvarRegion()

getObjCIvarRegion - Retrieve or create the memory region associated with a specified Objective-c instance variable.

'superRegion' corresponds to the containing region (which typically represents the Objective-C object).

Definition at line 1244 of file MemRegion.cpp.

getObjCStringRegion()

getParamVarRegion()

getStackArgumentsRegion()

getStackLocalsRegion()

getStaticSize()

getStringRegion()

getSymbolicHeapRegion()

getSymbolicRegion()

getUnknownRegion()

getVarRegion()

getVarRegion - Retrieve or create the memory region associated with a specified VarDecl and LocationContext.

Definition at line 1025 of file MemRegion.cpp.

References D, clang::Type::getAs(), getBlockCodeRegion(), clang::ASTContext::getBlockPointerType(), clang::StackFrameContext::getCallSite(), clang::Decl::getCanonicalDecl(), clang::ASTContext::getCanonicalType(), getContext(), clang::LocationContext::getDecl(), clang::Decl::getDeclContext(), getFunctionCodeRegion(), clang::ASTContext::getFunctionType(), getGlobalsRegion(), clang::Decl::getLocation(), getNonParamVarRegion(), clang::BlockDecl::getSignatureAsWritten(), clang::ASTContext::getSourceManager(), getStackArgumentsRegion(), clang::LocationContext::getStackFrame(), getStackLocalsRegion(), getStackOrCaptureRegionForDeclContext(), getUnknownRegion(), clang::QualType::isConstQualified(), clang::SourceManager::isInSystemHeader(), clang::QualType::isNull(), clang::BlockDecl::parameters(), clang::T, V, and clang::ASTContext::VoidTy.

Referenced by clang::ento::retaincountchecker::RetainCountChecker::checkPostStmt(), clang::ento::ObjCMethodCall::getInitialStackFrameContents(), clang::ento::StoreManager::getLValueVar(), clang::ento::ProgramState::getRegion(), and clang::ento::getWidenedLoopState().


The documentation for this class was generated from the following files: