clang API Documentation

Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends
clang::ento::MemRegion Class Reference

MemRegion - The root abstract class for all memory regions. More...

#include <MemRegion.h>

Inheritance diagram for clang::ento::MemRegion:
Inheritance graph
[legend]
Collaboration diagram for clang::ento::MemRegion:
Collaboration graph
[legend]

List of all members.

Public Types

enum  Kind {
  GenericMemSpaceRegionKind, StackLocalsSpaceRegionKind, StackArgumentsSpaceRegionKind, HeapSpaceRegionKind,
  UnknownSpaceRegionKind, StaticGlobalSpaceRegionKind, GlobalInternalSpaceRegionKind, GlobalSystemSpaceRegionKind,
  GlobalImmutableSpaceRegionKind, BEG_NON_STATIC_GLOBAL_MEMSPACES = GlobalInternalSpaceRegionKind, END_NON_STATIC_GLOBAL_MEMSPACES = GlobalImmutableSpaceRegionKind, BEG_GLOBAL_MEMSPACES = StaticGlobalSpaceRegionKind,
  END_GLOBAL_MEMSPACES = GlobalImmutableSpaceRegionKind, BEG_MEMSPACES = GenericMemSpaceRegionKind, END_MEMSPACES = GlobalImmutableSpaceRegionKind, SymbolicRegionKind,
  AllocaRegionKind, BlockDataRegionKind, BEG_TYPED_REGIONS, FunctionTextRegionKind = BEG_TYPED_REGIONS,
  BlockTextRegionKind, BEG_TYPED_VALUE_REGIONS, CompoundLiteralRegionKind = BEG_TYPED_VALUE_REGIONS, CXXThisRegionKind,
  StringRegionKind, ObjCStringRegionKind, ElementRegionKind, BEG_DECL_REGIONS,
  VarRegionKind = BEG_DECL_REGIONS, FieldRegionKind, ObjCIvarRegionKind, END_DECL_REGIONS = ObjCIvarRegionKind,
  CXXTempObjectRegionKind, CXXBaseObjectRegionKind, END_TYPED_VALUE_REGIONS = CXXBaseObjectRegionKind, END_TYPED_REGIONS = CXXBaseObjectRegionKind
}

Public Member Functions

ASTContextgetContext () const
virtual void Profile (llvm::FoldingSetNodeID &ID) const =0
virtual MemRegionManagergetMemRegionManager () const =0
const MemSpaceRegiongetMemorySpace () const
const MemRegiongetBaseRegion () const
const MemRegionStripCasts () const
bool hasGlobalsOrParametersStorage () const
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 void dumpPretty (raw_ostream &os) const
 Print the region for use in diagnostics.
Kind getKind () const
template<typename RegionTy >
const RegionTy * getAs () const
virtual bool isBoundable () const

Static Public Member Functions

static bool classof (const MemRegion *)

Protected Member Functions

 MemRegion (Kind k)
virtual ~MemRegion ()

Friends

class MemRegionManager

Detailed Description

MemRegion - The root abstract class for all memory regions.

Definition at line 66 of file MemRegion.h.


Member Enumeration Documentation

Enumerator:
GenericMemSpaceRegionKind 
StackLocalsSpaceRegionKind 
StackArgumentsSpaceRegionKind 
HeapSpaceRegionKind 
UnknownSpaceRegionKind 
StaticGlobalSpaceRegionKind 
GlobalInternalSpaceRegionKind 
GlobalSystemSpaceRegionKind 
GlobalImmutableSpaceRegionKind 
BEG_NON_STATIC_GLOBAL_MEMSPACES 
END_NON_STATIC_GLOBAL_MEMSPACES 
BEG_GLOBAL_MEMSPACES 
END_GLOBAL_MEMSPACES 
BEG_MEMSPACES 
END_MEMSPACES 
SymbolicRegionKind 
AllocaRegionKind 
BlockDataRegionKind 
BEG_TYPED_REGIONS 
FunctionTextRegionKind 
BlockTextRegionKind 
BEG_TYPED_VALUE_REGIONS 
CompoundLiteralRegionKind 
CXXThisRegionKind 
StringRegionKind 
ObjCStringRegionKind 
ElementRegionKind 
BEG_DECL_REGIONS 
VarRegionKind 
FieldRegionKind 
ObjCIvarRegionKind 
END_DECL_REGIONS 
CXXTempObjectRegionKind 
CXXBaseObjectRegionKind 
END_TYPED_VALUE_REGIONS 
END_TYPED_REGIONS 

Definition at line 69 of file MemRegion.h.


Constructor & Destructor Documentation

clang::ento::MemRegion::MemRegion ( Kind  k) [inline, protected]

Definition at line 116 of file MemRegion.h.

MemRegion::~MemRegion ( ) [protected, virtual]

Definition at line 137 of file MemRegion.cpp.


Member Function Documentation

static bool clang::ento::MemRegion::classof ( const MemRegion ) [inline, static]
void clang::ento::MemRegion::dump ( ) const
virtual void clang::ento::MemRegion::dumpPretty ( raw_ostream &  os) const [virtual]

Print the region for use in diagnostics.

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

virtual void clang::ento::MemRegion::dumpToStream ( raw_ostream &  os) const [virtual]
template<typename RegionTy >
const RegionTy * clang::ento::MemRegion::getAs ( ) const

Definition at line 1039 of file MemRegion.h.

References NULL.

Referenced by clang::ento::SVal::getAsFunctionDecl().

RegionOffset MemRegion::getAsOffset ( ) const
const MemRegion * MemRegion::getBaseRegion ( ) const
ASTContext & clang::ento::MemRegion::getContext ( ) const [inline]
Kind clang::ento::MemRegion::getKind ( ) const [inline]
const MemSpaceRegion * MemRegion::getMemorySpace ( ) const
virtual MemRegionManager* clang::ento::MemRegion::getMemRegionManager ( ) const [pure virtual]
std::string clang::ento::MemRegion::getString ( ) const

Get a string representation of a region for debug use.

bool MemRegion::hasGlobalsOrParametersStorage ( ) const

Definition at line 871 of file MemRegion.cpp.

References getMemorySpace().

bool MemRegion::hasStackNonParametersStorage ( ) const

Definition at line 863 of file MemRegion.cpp.

References getMemorySpace().

bool MemRegion::hasStackParametersStorage ( ) const

Definition at line 867 of file MemRegion.cpp.

References getMemorySpace().

bool MemRegion::hasStackStorage ( ) const

Definition at line 859 of file MemRegion.cpp.

References getMemorySpace().

virtual bool clang::ento::MemRegion::isBoundable ( ) const [inline, virtual]
virtual void clang::ento::MemRegion::Profile ( llvm::FoldingSetNodeID &  ID) const [pure virtual]
const MemRegion * MemRegion::StripCasts ( ) const

Friends And Related Function Documentation

friend class MemRegionManager [friend]

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