clang 8.0.0

Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
clang::ento::TypedValueRegion Class Referenceabstract

TypedValueRegion - An abstract class representing regions having a typed value. More...

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

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

## Public Member Functions
virtual QualType | getValueType () const =0
QualType | getLocationType () const override
QualType | getDesugaredValueType (ASTContext &Context) const
DefinedOrUnknownSVal | getExtent (SValBuilder &svalBuilder) const override
| getExtent - Returns the size of the region in bytes. More...
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
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
virtual void | Profile (llvm::FoldingSetNodeID &ID) const =0
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...
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. 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
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)

## Protected Member Functions
| 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 ()

## Additional Inherited Members
Public Types inherited from clang::ento::MemRegion
enum | Kind
Protected Attributes inherited from clang::ento::SubRegion
const MemRegion * | superRegion

## Detailed Description

TypedValueRegion - An abstract class representing regions having a typed value.

Definition at line 530 of file MemRegion.h.

## Constructor & Destructor Documentation

## ◆ TypedValueRegion()

clang::ento::TypedValueRegion::TypedValueRegion | ( | const MemRegion * | sReg,
|  | Kind | k
| ) |  |
| inline protected

Definition at line 534 of file MemRegion.h.

References clang::classof().

## Member Function Documentation

## ◆ classof()

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

Definition at line 557 of file MemRegion.h.

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

## ◆ getDesugaredValueType()

QualType clang::ento::TypedValueRegion::getDesugaredValueType | ( | ASTContext & | Context | ) | const
| inline

Definition at line 550 of file MemRegion.h.

## ◆ getExtent()

DefinedOrUnknownSVal TypedValueRegion::getExtent | ( | SValBuilder & | svalBuilder | ) | const
| override virtual

getExtent - Returns the size of the region in bytes.

Reimplemented from clang::ento::SubRegion.

Reimplemented in clang::ento::FieldRegion, and clang::ento::StringRegion.

Definition at line 167 of file MemRegion.cpp.

References clang::ento::SValBuilder::getArrayIndexType(), clang::ento::SValBuilder::getContext(), clang::ento::SymbolManager::getExtentSymbol(), clang::CharUnits::getQuantity(), clang::ento::SValBuilder::getSymbolManager(), clang::ASTContext::getTypeSizeInChars(), clang::Type::isIncompleteType(), and clang::ento::SValBuilder::makeIntVal().

Referenced by clang::ento::FieldRegion::getExtent().

## ◆ getLocationType()

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

Implements clang::ento::TypedRegion.

Definition at line 541 of file MemRegion.h.

References clang::Type::getAs(), clang::ASTContext::getObjCObjectPointerType(), and clang::ASTContext::getPointerType().

## ◆ getValueType()

virtual QualType clang::ento::TypedValueRegion::getValueType | ( |  | ) | const
| pure virtual

Implemented in clang::ento::CXXDerivedObjectRegion, clang::ento::CXXBaseObjectRegion, clang::ento::CXXTempObjectRegion, clang::ento::ElementRegion, clang::ento::ObjCIvarRegion, clang::ento::FieldRegion, clang::ento::CXXThisRegion, clang::ento::VarRegion, clang::ento::CompoundLiteralRegion, clang::ento::ObjCStringRegion, and clang::ento::StringRegion.

Referenced by clang::ento::FindUninitializedFields::FindUninitializedFields(), getConstructedRegion(), clang::ento::SValBuilder::getDerivedRegionValueSymbolVal(), clang::ento::SValBuilder::getRegionValueSymbolVal(), clang::ento::LazyCompoundValData::LazyCompoundValData(), clang::ento::SymbolDerived::SymbolDerived(), and clang::ento::SymbolRegionValue::SymbolRegionValue().

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

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