clang 22.0.0git
clang::ento::loc::MemRegionVal Class Reference

#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.h"

Inheritance diagram for clang::ento::loc::MemRegionVal:
[legend]

Public Member Functions

 MemRegionVal (const MemRegion *r)
LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegiongetRegion () const
 Get the underlining region.
LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegionstripCasts (bool StripBaseCasts=true) const
 Get the underlining region and strip casts.
template<typename REGION>
const REGIONgetRegionAs () const
bool operator== (const MemRegionVal &R) const
bool operator!= (const MemRegionVal &R) const
Public Member Functions inherited from clang::ento::Loc
void dumpToStream (raw_ostream &Out) const
Public Member Functions inherited from clang::ento::DefinedSVal
bool isUnknown () const =delete
bool isUnknownOrUndef () const =delete
bool isValid () const =delete
Public Member Functions inherited from clang::ento::DefinedOrUnknownSVal
bool isUndef () const =delete
bool isValid () const =delete
Public Member Functions inherited from clang::ento::SVal
 SVal ()=default
template<typename T>
T castAs () const
 Convert to the specified SVal type, asserting that this SVal is of the desired type.
template<typename T>
std::optional< TgetAs () const
 Convert to the specified SVal type, returning std::nullopt if this SVal is not of the desired type.
SValKind getKind () const
StringRef getKindStr () const
void Profile (llvm::FoldingSetNodeID &ID) const
bool operator== (SVal R) const
bool operator!= (SVal R) const
bool isUnknown () const
bool isUndef () const
bool isUnknownOrUndef () const
bool isValid () const
bool isConstant () const
bool isConstant (int I) const
bool isZeroConstant () const
const FunctionDeclgetAsFunctionDecl () const
 getAsFunctionDecl - If this SVal is a MemRegionVal and wraps a CodeTextRegion wrapping a FunctionDecl, return that FunctionDecl.
SymbolRef getAsLocSymbol (bool IncludeBaseRegions=false) const
 If this SVal is a location and wraps a symbol, return that SymbolRef.
SymbolRef getLocSymbolInBase () const
 Get the symbol in the SVal or its base region.
SymbolRef getAsSymbol (bool IncludeBaseRegions=false) const
 If this SVal wraps a symbol return that SymbolRef.
const llvm::APSInt * getAsInteger () const
 If this SVal is loc::ConcreteInt or nonloc::ConcreteInt, return a pointer to APSInt which is held in it.
const MemRegiongetAsRegion () const
void printJson (raw_ostream &Out, bool AddQuotes) const
 printJson - Pretty-prints in JSON format.
void dumpToStream (raw_ostream &OS) const
void dump () const
llvm::iterator_range< SymExpr::symbol_iteratorsymbols () const
QualType getType (const ASTContext &) const
 Try to get a reasonable type for the given value.

Static Public Member Functions

static bool classof (SVal V)
Static Public Member Functions inherited from clang::ento::Loc
static bool isLocType (QualType T)
static bool classof (SVal V)
Static Public Member Functions inherited from clang::ento::DefinedSVal
static bool classof (SVal V)
Static Public Member Functions inherited from clang::ento::DefinedOrUnknownSVal
static bool classof (SVal V)

Additional Inherited Members

Public Types inherited from clang::ento::SVal
enum  SValKind : unsigned char
Protected Member Functions inherited from clang::ento::Loc
 Loc (SValKind Kind, const void *Data)
Protected Member Functions inherited from clang::ento::DefinedSVal
 DefinedSVal (SValKind Kind, const void *Data)
Protected Member Functions inherited from clang::ento::DefinedOrUnknownSVal
 DefinedOrUnknownSVal (SValKind Kind, const void *Data=nullptr)
Protected Member Functions inherited from clang::ento::SVal
 SVal (SValKind Kind, const void *Data=nullptr)
template<typename T>
const TcastDataAs () const
Protected Attributes inherited from clang::ento::SVal
const void * Data = nullptr
SValKind Kind = UndefinedValKind

Detailed Description

Definition at line 485 of file SVals.h.

Constructor & Destructor Documentation

◆ MemRegionVal()

clang::ento::loc::MemRegionVal::MemRegionVal ( const MemRegion * r)
inlineexplicit

Definition at line 487 of file SVals.h.

References clang::ento::Loc::Loc().

Referenced by operator!=(), and operator==().

Member Function Documentation

◆ classof()

bool clang::ento::loc::MemRegionVal::classof ( SVal V)
inlinestatic

Definition at line 512 of file SVals.h.

References V.

◆ getRegion()

LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegion * clang::ento::loc::MemRegionVal::getRegion ( ) const
inline

Get the underlining region.

Definition at line 493 of file SVals.h.

References clang::ento::SVal::castDataAs().

Referenced by getRegionAs(), operator!=(), operator==(), and stripCasts().

◆ getRegionAs()

template<typename REGION>
const REGION * clang::ento::loc::MemRegionVal::getRegionAs ( ) const
inline

Definition at line 500 of file SVals.h.

References getRegion(), and REGION.

◆ operator!=()

bool clang::ento::loc::MemRegionVal::operator!= ( const MemRegionVal & R) const
inline

Definition at line 508 of file SVals.h.

References getRegion(), and MemRegionVal().

◆ operator==()

bool clang::ento::loc::MemRegionVal::operator== ( const MemRegionVal & R) const
inline

Definition at line 504 of file SVals.h.

References getRegion(), and MemRegionVal().

◆ stripCasts()

const MemRegion * loc::MemRegionVal::stripCasts ( bool StripBaseCasts = true) const

Get the underlining region and strip casts.

Definition at line 185 of file SVals.cpp.

References getRegion(), and clang::ento::MemRegion::StripCasts().

Referenced by isSelfVar().


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