clang 10.0.0git

Public Member Functions | Friends | List of all members
clang::ento::loc::MemRegionVal Class Reference

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

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

## Public Member Functions
| MemRegionVal (const MemRegion *r)
const MemRegion * | getRegion () const
| Get the underlining region. More...
const MemRegion * | stripCasts (bool StripBaseCasts=true) const
| Get the underlining region and strip casts. More...
template<typename REGION >
const REGION * | getRegionAs () 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. More...
template<typename T >
Optional< T > | getAs () const
| Convert to the specified SVal type, returning None if this SVal is not of the desired type. More...
unsigned | getRawKind () const
BaseKind | getBaseKind () const
unsigned | getSubKind () const
void | Profile (llvm::FoldingSetNodeID &ID) const
bool | operator== (const SVal &R) const
bool | operator!= (const 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
bool | hasConjuredSymbol () const
| hasConjuredSymbol - If this SVal wraps a conjured symbol, return true; More...
const FunctionDecl * | getAsFunctionDecl () const
| getAsFunctionDecl - If this SVal is a MemRegionVal and wraps a CodeTextRegion wrapping a FunctionDecl, return that FunctionDecl. More...
SymbolRef | getAsLocSymbol (bool IncludeBaseRegions=false) const
| If this SVal is a location and wraps a symbol, return that SymbolRef. More...
SymbolRef | getLocSymbolInBase () const
| Get the symbol in the SVal or its base region. More...
SymbolRef | getAsSymbol (bool IncludeBaseRegions=false) const
| If this SVal wraps a symbol return that SymbolRef. More...
const SymExpr * | getAsSymbolicExpression () const
| getAsSymbolicExpression - If this Sval wraps a symbolic expression then return that expression. More...
const SymExpr * | getAsSymExpr () const
const MemRegion * | getAsRegion () const
void | printJson (raw_ostream &Out, bool AddQuotes) const
| printJson - Pretty-prints in JSON format. More...
void | dumpToStream (raw_ostream &OS) const
void | dump () const
SymExpr::symbol_iterator | symbol_begin () const
SymExpr::symbol_iterator | symbol_end () const

## Friends
class | SVal

## Additional Inherited Members
Public Types inherited from clang::ento::SVal
enum | BaseKind
enum | { BaseBits = 2, BaseMask = 0x3 }
Static Public Member Functions inherited from clang::ento::Loc
static bool | isLocType (QualType T)
Protected Member Functions inherited from clang::ento::Loc
| Loc ()=default
| Loc (unsigned SubKind, const void *D)
Protected Member Functions inherited from clang::ento::DefinedSVal
| DefinedSVal ()=default
| DefinedSVal (const void *d, bool isLoc, unsigned ValKind)
Protected Member Functions inherited from clang::ento::DefinedOrUnknownSVal
| DefinedOrUnknownSVal ()=default
| DefinedOrUnknownSVal (const void *d, bool isLoc, unsigned ValKind)
| DefinedOrUnknownSVal (BaseKind k, void *D=nullptr)
Protected Member Functions inherited from clang::ento::SVal
| SVal (const void *d, bool isLoc, unsigned ValKind)
| SVal (BaseKind k, const void *D=nullptr)
Protected Attributes inherited from clang::ento::SVal
const void * | Data = nullptr
unsigned | Kind = 0
| The lowest 2 bits are a BaseKind (0 – 3). More...

## Detailed Description

Definition at line 598 of file SVals.h.

## Constructor & Destructor Documentation

## ◆ MemRegionVal()

clang::ento::loc::MemRegionVal::MemRegionVal | ( | const MemRegion * | r | ) |
| inline explicit

Definition at line 600 of file SVals.h.

## Member Function Documentation

## ◆ getRegion()

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

Get the underlining region.

Definition at line 605 of file SVals.h.

References stripCasts().

Referenced by operator!=(), operator==(), clang::ento::ExprEngine::VisitCallExpr(), and clang::ento::SValExplainer::VisitLocMemRegionVal().

## ◆ getRegionAs()

template<typename REGION >

const REGION* clang::ento::loc::MemRegionVal::getRegionAs | ( |  | ) | const
| inline

Definition at line 613 of file SVals.h.

References REGION.

Referenced by clang::ento::FindUninitializedFields::FindUninitializedFields().

## ◆ operator!=()

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

Definition at line 621 of file SVals.h.

References getRegion().

## ◆ operator==()

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

Definition at line 617 of file SVals.h.

References getRegion().

## ◆ stripCasts()

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

Get the underlining region and strip casts.

Definition at line 161 of file SVals.cpp.

References clang::ento::MemRegion::StripCasts().

## Friends And Related Function Documentation

## ◆ SVal

friend class SVal
| friend

Definition at line 626 of file SVals.h.

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

- include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
- lib/StaticAnalyzer/Core/SVals.cpp