clang API Documentation
#include <MemRegion.h>
Definition at line 1121 of file MemRegion.h.
clang::ento::MemRegionManager::MemRegionManager | ( | ASTContext & | c, |
llvm::BumpPtrAllocator & | a | ||
) | [inline] |
Definition at line 1143 of file MemRegion.h.
Definition at line 140 of file MemRegion.cpp.
const AllocaRegion * MemRegionManager::getAllocaRegion | ( | const Expr * | Ex, |
unsigned | Cnt, | ||
const LocationContext * | LC | ||
) |
getAllocaRegion - Retrieve a region associated with a call to alloca().
Definition at line 1021 of file MemRegion.cpp.
References clang::LocationContext::getCurrentStackFrame(), and getStackLocalsRegion().
llvm::BumpPtrAllocator& clang::ento::MemRegionManager::getAllocator | ( | ) | [inline] |
Definition at line 1152 of file MemRegion.h.
const BlockDataRegion * MemRegionManager::getBlockDataRegion | ( | const BlockTextRegion * | bc, |
const LocationContext * | lc, | ||
unsigned | blockCount | ||
) |
getBlockDataRegion - Get the memory region associated with an instance of a block. Unlike many other MemRegions, the LocationContext* argument is allowed to be NULL for cases where we have no known context.
Definition at line 852 of file MemRegion.cpp.
References clang::LocationContext::getCurrentStackFrame(), clang::ento::BlockTextRegion::getDecl(), getGlobalsRegion(), getStackLocalsRegion(), getUnknownRegion(), clang::ento::MemRegion::GlobalImmutableSpaceRegionKind, and clang::BlockDecl::hasCaptures().
Referenced by clang::ento::SValBuilder::getBlockPointer().
const BlockTextRegion * MemRegionManager::getBlockTextRegion | ( | const BlockDecl * | BD, |
CanQualType | locTy, | ||
AnalysisDeclContext * | AC | ||
) |
Definition at line 931 of file MemRegion.cpp.
References getCodeRegion().
Referenced by clang::ento::SValBuilder::getBlockPointer(), and getVarRegion().
const MemSpaceRegion * MemRegionManager::getCodeRegion | ( | ) |
Definition at line 718 of file MemRegion.cpp.
Referenced by getBlockTextRegion(), and getFunctionTextRegion().
const CompoundLiteralRegion * MemRegionManager::getCompoundLiteralRegion | ( | const CompoundLiteralExpr * | CL, |
const LocationContext * | LC | ||
) |
getCompoundLiteralRegion - Retrieve the region associated with a given CompoundLiteral.
Definition at line 886 of file MemRegion.cpp.
References clang::LocationContext::getCurrentStackFrame(), getGlobalsRegion(), getStackLocalsRegion(), and clang::CompoundLiteralExpr::isFileScope().
Referenced by clang::ento::StoreManager::getLValueCompoundLiteral().
ASTContext& clang::ento::MemRegionManager::getContext | ( | ) | [inline] |
Definition at line 1150 of file MemRegion.h.
Referenced by clang::ento::MemRegion::getContext(), and getVarRegion().
const CXXBaseObjectRegion * MemRegionManager::getCXXBaseObjectRegion | ( | const CXXRecordDecl * | BaseClass, |
const MemRegion * | Super, | ||
bool | IsVirtual | ||
) |
Create a CXXBaseObjectRegion with the given base class for region Super
.
The type of Super
is assumed be a class deriving from BaseClass
.
Definition at line 989 of file MemRegion.cpp.
References isValidBaseClass().
Referenced by clang::ento::StoreManager::evalDerivedToBase(), and getCXXBaseObjectRegionWithSuper().
const CXXBaseObjectRegion* clang::ento::MemRegionManager::getCXXBaseObjectRegionWithSuper | ( | const CXXBaseObjectRegion * | baseReg, |
const MemRegion * | superRegion | ||
) | [inline] |
Create a CXXBaseObjectRegion with the same CXXRecordDecl but a different super region.
Definition at line 1258 of file MemRegion.h.
References getCXXBaseObjectRegion(), clang::ento::CXXBaseObjectRegion::getDecl(), and clang::ento::CXXBaseObjectRegion::isVirtual().
const CXXTempObjectRegion * MemRegionManager::getCXXStaticTempObjectRegion | ( | const Expr * | Ex | ) |
Create a CXXTempObjectRegion for temporaries which are lifetime-extended by static references. This differs from getCXXTempObjectRegion in the super-region used.
Definition at line 880 of file MemRegion.cpp.
References getGlobalsRegion(), and clang::ento::MemRegion::GlobalInternalSpaceRegionKind.
const CXXTempObjectRegion * MemRegionManager::getCXXTempObjectRegion | ( | Expr const * | Ex, |
LocationContext const * | LC | ||
) |
Definition at line 959 of file MemRegion.cpp.
References clang::LocationContext::getCurrentStackFrame(), and getStackLocalsRegion().
Referenced by getRegionForConstructedObject().
const CXXThisRegion * MemRegionManager::getCXXThisRegion | ( | QualType | thisPointerTy, |
const LocationContext * | LC | ||
) |
getCXXThisRegion - Retrieve the [artificial] region associated with the parameter 'this'.
Definition at line 1011 of file MemRegion.cpp.
References clang::Type::getAs(), clang::LocationContext::getCurrentStackFrame(), and getStackArgumentsRegion().
Referenced by clang::ento::ExprEngine::VisitCXXThisExpr().
const ElementRegion * MemRegionManager::getElementRegion | ( | QualType | elementType, |
NonLoc | Idx, | ||
const MemRegion * | superRegion, | ||
ASTContext & | Ctx | ||
) |
getElementRegion - Retrieve the memory region associated with the associated element type, index, and super region.
Definition at line 903 of file MemRegion.cpp.
References data(), clang::ASTContext::getCanonicalType(), and clang::CanQual< T >::getUnqualifiedType().
Referenced by getElementRegionWithSuper(), clang::ento::StoreManager::GetElementZeroRegion(), clang::ento::StoreManager::getLValueElement(), and clang::ento::StoreManager::MakeElementRegion().
const ElementRegion* clang::ento::MemRegionManager::getElementRegionWithSuper | ( | const ElementRegion * | ER, |
const MemRegion * | superRegion | ||
) | [inline] |
Definition at line 1219 of file MemRegion.h.
References clang::ento::MemRegion::getContext(), getElementRegion(), clang::ento::ElementRegion::getElementType(), and clang::ento::ElementRegion::getIndex().
const FieldRegion * MemRegionManager::getFieldRegion | ( | const FieldDecl * | fd, |
const MemRegion * | superRegion | ||
) |
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 947 of file MemRegion.cpp.
Referenced by getFieldRegionWithSuper().
const FieldRegion* clang::ento::MemRegionManager::getFieldRegionWithSuper | ( | const FieldRegion * | FR, |
const MemRegion * | superRegion | ||
) | [inline] |
Definition at line 1232 of file MemRegion.h.
References clang::ento::FieldRegion::getDecl(), and getFieldRegion().
const FunctionTextRegion * MemRegionManager::getFunctionTextRegion | ( | const NamedDecl * | FD | ) |
Definition at line 926 of file MemRegion.cpp.
References getCodeRegion().
Referenced by clang::ento::SValBuilder::getFunctionPointer(), and getVarRegion().
const GlobalsSpaceRegion * MemRegionManager::getGlobalsRegion | ( | MemRegion::Kind | K = MemRegion::GlobalInternalSpaceRegionKind , |
const CodeTextRegion * | R = nullptr |
||
) |
getGlobalsRegion - Retrieve the memory region associated with global variables.
Definition at line 689 of file MemRegion.cpp.
References clang::ento::MemRegion::GlobalImmutableSpaceRegionKind, clang::ento::MemRegion::GlobalInternalSpaceRegionKind, clang::ento::MemRegion::GlobalSystemSpaceRegionKind, and clang::ento::MemRegion::StaticGlobalSpaceRegionKind.
Referenced by getBlockDataRegion(), getCompoundLiteralRegion(), getCXXStaticTempObjectRegion(), getObjCStringRegion(), getStringRegion(), and getVarRegion().
const HeapSpaceRegion * MemRegionManager::getHeapRegion | ( | ) |
getHeapRegion - Retrieve the memory region associated with the generic "heap".
Definition at line 710 of file MemRegion.cpp.
Referenced by getSymbolicHeapRegion().
const ObjCIvarRegion * MemRegionManager::getObjCIvarRegion | ( | const ObjCIvarDecl * | ivd, |
const MemRegion * | superRegion | ||
) |
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 953 of file MemRegion.cpp.
const ObjCStringRegion * MemRegionManager::getObjCStringRegion | ( | const ObjCStringLiteral * | Str | ) |
Definition at line 730 of file MemRegion.cpp.
References getGlobalsRegion().
const StackArgumentsSpaceRegion * MemRegionManager::getStackArgumentsRegion | ( | const StackFrameContext * | STC | ) |
getStackArgumentsRegion - Retrieve the memory region associated with function/method arguments of the specified stack frame.
Definition at line 676 of file MemRegion.cpp.
Referenced by getCXXThisRegion(), and getVarRegion().
const StackLocalsSpaceRegion * MemRegionManager::getStackLocalsRegion | ( | const StackFrameContext * | STC | ) |
getStackLocalsRegion - Retrieve the memory region associated with the specified stack frame.
Definition at line 663 of file MemRegion.cpp.
Referenced by getAllocaRegion(), getBlockDataRegion(), getCompoundLiteralRegion(), getCXXTempObjectRegion(), and getVarRegion().
const StringRegion * MemRegionManager::getStringRegion | ( | const StringLiteral * | Str | ) |
Definition at line 725 of file MemRegion.cpp.
References getGlobalsRegion().
const SymbolicRegion * MemRegionManager::getSymbolicHeapRegion | ( | SymbolRef | sym | ) |
Return a unique symbolic region belonging to heap memory space.
Definition at line 942 of file MemRegion.cpp.
References getHeapRegion().
Referenced by clang::ento::SValBuilder::getConjuredHeapSymbolVal().
const SymbolicRegion * MemRegionManager::getSymbolicRegion | ( | SymbolRef | Sym | ) |
Retrieve or create a "symbolic" memory region.
getSymbolicRegion - Retrieve or create a "symbolic" memory region.
Definition at line 938 of file MemRegion.cpp.
References getUnknownRegion().
Referenced by clang::ento::SValBuilder::conjureSymbolVal(), clang::ento::SValBuilder::getDerivedRegionValueSymbolVal(), clang::ento::SValBuilder::getMetadataSymbolVal(), clang::ento::SValBuilder::getRegionValueSymbolVal(), and clang::ento::SValBuilder::makeLoc().
const MemSpaceRegion * MemRegionManager::getUnknownRegion | ( | ) |
getUnknownRegion - Retrieve the memory region associated with unknown memory space.
Definition at line 714 of file MemRegion.cpp.
Referenced by getBlockDataRegion(), getSymbolicRegion(), and getVarRegion().
const VarRegion * MemRegionManager::getVarRegion | ( | const VarDecl * | D, |
const LocationContext * | LC | ||
) |
getVarRegion - Retrieve or create the memory region associated with a specified VarDecl and LocationContext.
Definition at line 765 of file MemRegion.cpp.
References AttributeLangSupport::C, getBlockTextRegion(), getContext(), clang::Decl::getDeclContext(), clang::ASTContext::getFunctionNoProtoType(), getFunctionTextRegion(), getGlobalsRegion(), clang::Decl::getLocation(), clang::NamedDecl::getName(), getStackArgumentsRegion(), getStackLocalsRegion(), getStackOrCaptureRegionForDeclContext(), clang::ValueDecl::getType(), clang::QualType::getTypePtrOrNull(), getUnknownRegion(), clang::ento::MemRegion::GlobalImmutableSpaceRegionKind, clang::ento::MemRegion::GlobalSystemSpaceRegionKind, clang::VarDecl::hasGlobalStorage(), clang::VarDecl::hasLocalStorage(), clang::Type::isArithmeticType(), clang::QualType::isConstQualified(), clang::VarDecl::isStaticLocal(), and clang::ento::MemRegion::StaticGlobalSpaceRegionKind.
Referenced by addParameterValuesToBindings(), clang::ObjCMethodCall::getInitialStackFrameContents(), getLocationRegionIfReference(), clang::ento::StoreManager::getLValueVar(), clang::ento::ProgramState::getRegion(), and clang::ento::FindLastStoreBRVisitor::registerStatementVarDecls().
const VarRegion * MemRegionManager::getVarRegion | ( | const VarDecl * | D, |
const MemRegion * | superR | ||
) |
getVarRegion - Retrieve or create the memory region associated with a specified VarDecl and super region.
Definition at line 846 of file MemRegion.cpp.