clang 10.0.0git

Classes | Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::ento::BlockDataRegion Class Reference

BlockDataRegion - A region that represents a block instance. More...

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

Inheritance diagram for clang::ento::BlockDataRegion:
[legend]
Collaboration diagram for clang::ento::BlockDataRegion:
[legend]

## Classes
class | referenced_vars_iterator

## Public Member Functions
const BlockCodeRegion * | getCodeRegion () const
const BlockDecl * | getDecl () const
QualType | getLocationType () const override
const VarRegion * | getOriginalRegion (const VarRegion *VR) const
| Return the original region for a captured region, if one exists. More...
referenced_vars_iterator | referenced_vars_begin () const
referenced_vars_iterator | referenced_vars_end () const
void | dumpToStream (raw_ostream &os) const override
void | Profile (llvm::FoldingSetNodeID &ID) const override
Public Member Functions inherited from clang::ento::TypedRegion
QualType | getDesugaredLocationType (ASTContext &Context) const
bool | isBoundable () const override
Public Member Functions inherited from clang::ento::SubRegion
const MemRegion * | getSuperRegion () const
virtual DefinedOrUnknownSVal | getExtent (SValBuilder &svalBuilder) const
| getExtent - Returns the size of the region in bytes. More...
MemRegionManager * | getMemRegionManager () const override
bool | isSubRegionOf (const MemRegion *R) const override
| Check if the region is a subregion of the given region. More...
Public Member Functions inherited from clang::ento::MemRegion
ASTContext & | getContext () const
const MemSpaceRegion * | getMemorySpace () const
const MemRegion * | getBaseRegion () const
const MemRegion * | getMostDerivedObjectRegion () const
| Recursively retrieve the region of the most derived class instance of regions of C++ base class instances. More...
const MemRegion * | StripCasts (bool StripBaseAndDerivedCasts=true) const
const SymbolicRegion * | getSymbolicBase () const
| If this is a symbolic region, returns the region. More...
bool | hasGlobalsOrParametersStorage () const
bool | hasStackStorage () const
bool | hasStackNonParametersStorage () const
bool | hasStackParametersStorage () const
RegionOffset | getAsOffset () const
| Compute the offset within the top level memory object. More...
std::string | getString () const
| Get a string representation of a region for debug use. More...
void | dump () const
virtual bool | canPrintPretty () const
| Returns true if this region can be printed in a user-friendly way. More...
virtual void | printPretty (raw_ostream &os) const
| Print the region for use in diagnostics. More...
virtual bool | canPrintPrettyAsExpr () const
| Returns true if this region's textual representation can be used as part of a larger expression. More...
virtual void | printPrettyAsExpr (raw_ostream &os) const
| Print the region as expression. More...
Kind | getKind () const
template<typename RegionTy >
const RegionTy * | getAs () const
template<typename RegionTy >
const RegionTy * | castAs () const
std::string | getDescriptiveName (bool UseQuotes=true) const
| Get descriptive name for memory region. More...
SourceRange | sourceRange () const
| Retrieve source range from memory region. More...

## Static Public Member Functions
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::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

## Detailed Description

BlockDataRegion - A region that represents a block instance.

Blocks are represented with two kinds of regions. BlockCodeRegions represent the "code", while BlockDataRegions represent instances of blocks, which correspond to "code+data". The distinction is important, because like a closure a block captures the values of externally referenced variables.

Definition at line 673 of file MemRegion.h.

## Member Function Documentation

## ◆ classof()

static bool clang::ento::BlockDataRegion::classof | ( | const MemRegion * | R | ) |
| inline static

Definition at line 749 of file MemRegion.h.

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

## ◆ dumpToStream()

void BlockDataRegion::dumpToStream | ( | raw_ostream & | os | ) | const
| override virtual

Reimplemented from clang::ento::MemRegion.

Definition at line 470 of file MemRegion.cpp.

## ◆ getCodeRegion()

const BlockCodeRegion* clang::ento::BlockDataRegion::getCodeRegion | ( |  | ) | const
| inline

Definition at line 698 of file MemRegion.h.

## ◆ getDecl()

const BlockDecl* clang::ento::BlockDataRegion::getDecl | ( |  | ) | const
| inline

Definition at line 700 of file MemRegion.h.

References clang::ento::BlockCodeRegion::getDecl().

## ◆ getLocationType()

QualType clang::ento::BlockDataRegion::getLocationType | ( |  | ) | const
| inline override virtual

Implements clang::ento::TypedRegion.

Definition at line 702 of file MemRegion.h.

References clang::ento::BlockCodeRegion::getLocationType().

## ◆ getOriginalRegion()

const VarRegion * BlockDataRegion::getOriginalRegion | ( | const VarRegion * | VR | ) | const

Return the original region for a captured region, if one exists.

Definition at line 1571 of file MemRegion.cpp.

## ◆ Profile()

void BlockDataRegion::Profile | ( | llvm::FoldingSetNodeID & | ID | ) | const
| override virtual

Implements clang::ento::MemRegion.

Definition at line 382 of file MemRegion.cpp.

## ◆ referenced_vars_begin()

BlockDataRegion::referenced_vars_iterator BlockDataRegion::referenced_vars_begin | ( |  | ) | const

Definition at line 1540 of file MemRegion.cpp.

## ◆ referenced_vars_end()

BlockDataRegion::referenced_vars_iterator BlockDataRegion::referenced_vars_end | ( |  | ) | const

Definition at line 1556 of file MemRegion.cpp.

## Friends And Related Function Documentation

## ◆ MemRegionManager

friend class MemRegionManager
| friend

Definition at line 674 of file MemRegion.h.

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

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