clang  4.0.0svn
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
clang::ento::SymExpr Class Referenceabstract

Symbolic value. More...

#include <SymExpr.h>

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

Classes

class  symbol_iterator
 Iterator over symbols that the current symbol depends on. More...
 

Public Types

enum  Kind
 

Public Member Functions

virtual ~SymExpr ()
 
Kind getKind () const
 
virtual void dump () const
 
virtual void dumpToStream (raw_ostream &os) const
 
virtual QualType getType () const =0
 
virtual void Profile (llvm::FoldingSetNodeID &profile)=0
 
symbol_iterator symbol_begin () const
 
unsigned computeComplexity () const
 
virtual const MemRegiongetOriginRegion () const
 Find the region from which this symbol originates. More...
 

Static Public Member Functions

static symbol_iterator symbol_end ()
 

Protected Member Functions

 SymExpr (Kind k)
 

Detailed Description

Symbolic value.

These values used to capture symbolic execution of the program.

Definition at line 29 of file SymExpr.h.

Member Enumeration Documentation

Definition at line 33 of file SymExpr.h.

Constructor & Destructor Documentation

clang::ento::SymExpr::SymExpr ( Kind  k)
inlineprotected

Definition at line 43 of file SymExpr.h.

virtual clang::ento::SymExpr::~SymExpr ( )
inlinevirtual

Definition at line 46 of file SymExpr.h.

Member Function Documentation

unsigned SymExpr::computeComplexity ( ) const

Definition at line 143 of file SymbolManager.cpp.

References symbol_begin(), and symbol_end().

Referenced by clang::ento::SValBuilder::makeSymExprValNN(), and symbol_end().

LLVM_DUMP_METHOD void SymExpr::dump ( ) const
virtual

Definition at line 26 of file SymbolManager.cpp.

References dumpToStream().

Referenced by getKind().

virtual void clang::ento::SymExpr::dumpToStream ( raw_ostream &  os) const
inlinevirtual
Kind clang::ento::SymExpr::getKind ( ) const
inline
virtual const MemRegion* clang::ento::SymExpr::getOriginRegion ( ) const
inlinevirtual

Find the region from which this symbol originates.

Whenever the symbol was constructed to denote an unknown value of a certain memory region, return this region. This method allows checkers to make decisions depending on the origin of the symbol. Symbol classes for which the origin region is known include SymbolRegionValue which denotes the value of the region before the beginning of the analysis, and SymbolDerived which denotes the value of a certain memory region after its super region (a memory space or a larger record region) is default-bound with a certain symbol.

Reimplemented in clang::ento::SymbolDerived, and clang::ento::SymbolRegionValue.

Definition at line 92 of file SymExpr.h.

Referenced by clang::ento::ProgramStateTrait< SymbolSet >::GDMIndex(), and GetAllocationSite().

virtual QualType clang::ento::SymExpr::getType ( ) const
pure virtual
virtual void clang::ento::SymExpr::Profile ( llvm::FoldingSetNodeID &  profile)
pure virtual
symbol_iterator clang::ento::SymExpr::symbol_begin ( ) const
inline
static symbol_iterator clang::ento::SymExpr::symbol_end ( )
inlinestatic

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