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:
- include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
- lib/StaticAnalyzer/Core/MemRegion.cpp