clang 20.0.0git
|
ParamVarRegion - Represents a region for paremters. More...
#include "clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h"
Public Member Functions | |
LLVM_ATTRIBUTE_RETURNS_NONNULL const Expr * | getOriginExpr () const |
unsigned | getIndex () const |
void | Profile (llvm::FoldingSetNodeID &ID) const override |
void | dumpToStream (raw_ostream &os) const override |
QualType | getValueType () const override |
const ParmVarDecl * | getDecl () const override |
TODO: What does this return? | |
bool | canPrintPrettyAsExpr () const override |
Returns true if this region's textual representation can be used as part of a larger expression. | |
void | printPrettyAsExpr (raw_ostream &os) const override |
Print the region as expression. | |
Public Member Functions inherited from clang::ento::VarRegion | |
const VarDecl * | getDecl () const override=0 |
const StackFrameContext * | getStackFrame () const |
It might return null. | |
QualType | getValueType () const override |
virtual const ValueDecl * | getDecl () const =0 |
Public Member Functions inherited from clang::ento::TypedValueRegion | |
virtual QualType | getValueType () const =0 |
QualType | getLocationType () const override |
QualType | getDesugaredValueType (ASTContext &Context) const |
Public Member Functions inherited from clang::ento::TypedRegion | |
virtual QualType | getLocationType () const =0 |
QualType | getDesugaredLocationType (ASTContext &Context) const |
bool | isBoundable () const override |
Public Member Functions inherited from clang::ento::SubRegion | |
LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegion * | getSuperRegion () const |
MemRegionManager & | getMemRegionManager () const override |
bool | isSubRegionOf (const MemRegion *R) const override |
Check if the region is a subregion of the given region. | |
Public Member Functions inherited from clang::ento::MemRegion | |
ASTContext & | getContext () const |
virtual void | Profile (llvm::FoldingSetNodeID &ID) const =0 |
virtual MemRegionManager & | getMemRegionManager () const =0 |
LLVM_ATTRIBUTE_RETURNS_NONNULL const MemSpaceRegion * | getMemorySpace () const |
LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegion * | getBaseRegion () const |
LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegion * | getMostDerivedObjectRegion () const |
Recursively retrieve the region of the most derived class instance of regions of C++ base class instances. | |
virtual bool | isSubRegionOf (const MemRegion *R) const |
Check if the region is a subregion of the given region. | |
LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegion * | StripCasts (bool StripBaseAndDerivedCasts=true) const |
const SymbolicRegion * | getSymbolicBase () const |
If this is a symbolic region, returns the region. | |
bool | hasStackStorage () const |
bool | hasStackNonParametersStorage () const |
bool | hasStackParametersStorage () const |
RegionOffset | getAsOffset () const |
Compute the offset within the top level memory object. | |
std::string | getString () const |
Get a string representation of a region for debug use. | |
virtual void | dumpToStream (raw_ostream &os) const |
void | dump () const |
virtual bool | canPrintPretty () const |
Returns true if this region can be printed in a user-friendly way. | |
virtual void | printPretty (raw_ostream &os) const |
Print the region for use in diagnostics. | |
virtual bool | canPrintPrettyAsExpr () const |
Returns true if this region's textual representation can be used as part of a larger expression. | |
virtual void | printPrettyAsExpr (raw_ostream &os) const |
Print the region as expression. | |
Kind | getKind () const |
StringRef | getKindStr () const |
template<typename RegionTy > | |
const RegionTy * | getAs () const |
template<typename RegionTy > | |
LLVM_ATTRIBUTE_RETURNS_NONNULL const RegionTy * | castAs () const |
virtual bool | isBoundable () const |
std::string | getDescriptiveName (bool UseQuotes=true) const |
Get descriptive name for memory region. | |
SourceRange | sourceRange () const |
Retrieve source range from memory region. | |
Static Public Member Functions | |
static bool | classof (const MemRegion *R) |
Static Public Member Functions inherited from clang::ento::VarRegion | |
static bool | classof (const MemRegion *R) |
Static Public Member Functions inherited from clang::ento::DeclRegion | |
static bool | classof (const MemRegion *R) |
Static Public Member Functions inherited from clang::ento::TypedValueRegion | |
static bool | classof (const MemRegion *R) |
Static Public Member Functions inherited from clang::ento::TypedRegion | |
static bool | classof (const MemRegion *R) |
Static Public Member Functions inherited from clang::ento::SubRegion | |
static bool | classof (const MemRegion *R) |
Friends | |
class | MemRegionManager |
Additional Inherited Members | |
Public Types inherited from clang::ento::MemRegion | |
enum | Kind |
Protected Member Functions inherited from clang::ento::VarRegion | |
VarRegion (const MemRegion *sReg, Kind k) | |
Protected Member Functions inherited from clang::ento::DeclRegion | |
DeclRegion (const MemRegion *sReg, Kind k) | |
Protected Member Functions inherited from clang::ento::TypedValueRegion | |
TypedValueRegion (const MemRegion *sReg, Kind k) | |
Protected Member Functions inherited from clang::ento::TypedRegion | |
TypedRegion (const MemRegion *sReg, Kind k) | |
Protected Member Functions inherited from clang::ento::SubRegion | |
SubRegion (const MemRegion *sReg, Kind k) | |
Protected Member Functions inherited from clang::ento::MemRegion | |
MemRegion (Kind k) | |
virtual | ~MemRegion () |
Protected Attributes inherited from clang::ento::SubRegion | |
const MemRegion * | superRegion |
ParamVarRegion - Represents a region for paremters.
Only parameters of the function in the current stack frame are represented as ParamVarRegion
s. Parameters of top-level analyzed functions as well as captured paremeters by lambdas and blocks are repesented as VarRegion
s.
Definition at line 1034 of file MemRegion.h.
|
overridevirtual |
Returns true if this region's textual representation can be used as part of a larger expression.
Reimplemented from clang::ento::MemRegion.
Definition at line 661 of file MemRegion.cpp.
Definition at line 1066 of file MemRegion.h.
References clang::ento::MemRegion::getKind().
|
overridevirtual |
Reimplemented from clang::ento::MemRegion.
Definition at line 613 of file MemRegion.cpp.
References getDecl(), clang::Decl::getID(), and clang::NamedDecl::getIdentifier().
|
overridevirtual |
TODO: What does this return?
Implements clang::ento::VarRegion.
Definition at line 200 of file MemRegion.cpp.
References D, clang::LocationContext::getDecl(), and clang::ento::VarRegion::getStackFrame().
Referenced by dumpToStream(), getValueType(), printPrettyAsExpr(), and clang::ento::SValExplainer::VisitParamVarRegion().
|
inline |
Definition at line 1052 of file MemRegion.h.
Referenced by Profile(), and clang::ento::SValExplainer::VisitParamVarRegion().
|
inline |
Definition at line 1051 of file MemRegion.h.
Referenced by Profile().
|
overridevirtual |
Reimplemented from clang::ento::VarRegion.
Definition at line 193 of file MemRegion.cpp.
References getDecl(), and clang::ValueDecl::getType().
|
overridevirtual |
Print the region as expression.
When this region represents a subexpression, the method is for printing an expression containing it.
Reimplemented from clang::ento::MemRegion.
Definition at line 663 of file MemRegion.cpp.
References getDecl(), and clang::NamedDecl::getName().
|
overridevirtual |
Implements clang::ento::MemRegion.
Definition at line 327 of file MemRegion.cpp.
References getIndex(), getOriginExpr(), and clang::ento::SubRegion::superRegion.
|
friend |
Definition at line 1035 of file MemRegion.h.