clang API Documentation
Symbolic value. These values used to capture symbolic execution of the program. More...
#include <SymbolManager.h>
Classes | |
class | symbol_iterator |
Iterator over symbols that the current symbol depends on. More... | |
Public Types | |
enum | Kind { RegionValueKind, ConjuredKind, DerivedKind, ExtentKind, MetadataKind, BEGIN_SYMBOLS = RegionValueKind, END_SYMBOLS = MetadataKind, SymIntKind, IntSymKind, SymSymKind, BEGIN_BINARYSYMEXPRS = SymIntKind, END_BINARYSYMEXPRS = SymSymKind, CastSymbolKind } |
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 |
Static Public Member Functions | |
static symbol_iterator | symbol_end () |
Protected Member Functions | |
SymExpr (Kind k) |
Symbolic value. These values used to capture symbolic execution of the program.
Definition at line 42 of file SymbolManager.h.
RegionValueKind | |
ConjuredKind | |
DerivedKind | |
ExtentKind | |
MetadataKind | |
BEGIN_SYMBOLS | |
END_SYMBOLS | |
SymIntKind | |
IntSymKind | |
SymSymKind | |
BEGIN_BINARYSYMEXPRS | |
END_BINARYSYMEXPRS | |
CastSymbolKind |
Definition at line 45 of file SymbolManager.h.
clang::ento::SymExpr::SymExpr | ( | Kind | k | ) | [inline, protected] |
Definition at line 57 of file SymbolManager.h.
virtual clang::ento::SymExpr::~SymExpr | ( | ) | [inline, virtual] |
Definition at line 60 of file SymbolManager.h.
unsigned SymExpr::computeComplexity | ( | ) | const |
Definition at line 143 of file SymbolManager.cpp.
References symbol_begin(), and symbol_end().
Referenced by clang::ento::SValBuilder::makeSymExprValNN().
void SymExpr::dump | ( | ) | const [virtual] |
Definition at line 26 of file SymbolManager.cpp.
References dumpToStream().
virtual void clang::ento::SymExpr::dumpToStream | ( | raw_ostream & | os | ) | const [inline, virtual] |
Reimplemented in clang::ento::SymSymExpr, clang::ento::IntSymExpr, clang::ento::SymIntExpr, clang::ento::SymbolCast, clang::ento::SymbolMetadata, clang::ento::SymbolExtent, clang::ento::SymbolDerived, clang::ento::SymbolConjured, and clang::ento::SymbolRegionValue.
Definition at line 66 of file SymbolManager.h.
Referenced by dump(), clang::ento::SymbolCast::dumpToStream(), clang::ento::SymIntExpr::dumpToStream(), clang::ento::IntSymExpr::dumpToStream(), clang::ento::SymSymExpr::dumpToStream(), and llvm::operator<<().
Kind clang::ento::SymExpr::getKind | ( | ) | const [inline] |
Definition at line 62 of file SymbolManager.h.
Referenced by clang::ento::SymbolData::classof(), clang::ento::SymbolRegionValue::classof(), clang::ento::SymbolConjured::classof(), clang::ento::SymbolDerived::classof(), clang::ento::SymbolExtent::classof(), clang::ento::SymbolMetadata::classof(), clang::ento::SymbolCast::classof(), clang::ento::BinarySymExpr::classof(), clang::ento::SymIntExpr::classof(), clang::ento::IntSymExpr::classof(), clang::ento::SymSymExpr::classof(), clang::ento::SymbolReaper::isLive(), and clang::ento::ScanReachableSymbols::scan().
virtual QualType clang::ento::SymExpr::getType | ( | ) | const [pure virtual] |
Implemented in clang::ento::BinarySymExpr, clang::ento::SymbolCast, clang::ento::SymbolMetadata, clang::ento::SymbolExtent, clang::ento::SymbolDerived, clang::ento::SymbolConjured, and clang::ento::SymbolRegionValue.
Referenced by clang::ento::SimpleConstraintManager::assumeAuxForSymbol(), clang::ento::SimpleConstraintManager::assumeSymRel(), clang::ento::ConstraintManager::checkNull(), clang::ento::SymbolManager::getType(), clang::ento::SValBuilder::haveSameType(), and REGISTER_TRAIT_WITH_PROGRAMSTATE().
virtual void clang::ento::SymExpr::Profile | ( | llvm::FoldingSetNodeID & | profile | ) | [pure virtual] |
Implemented in clang::ento::SymSymExpr, clang::ento::IntSymExpr, clang::ento::SymIntExpr, clang::ento::SymbolCast, clang::ento::SymbolMetadata, clang::ento::SymbolExtent, clang::ento::SymbolDerived, clang::ento::SymbolConjured, and clang::ento::SymbolRegionValue.
Referenced by clang::ento::SymbolManager::conjureSymbol(), clang::ento::SymbolManager::getCastSymbol(), clang::ento::SymbolManager::getDerivedSymbol(), clang::ento::SymbolManager::getExtentSymbol(), clang::ento::SymbolManager::getIntSymExpr(), clang::ento::SymbolManager::getMetadataSymbol(), clang::ento::SymbolManager::getRegionValueSymbol(), clang::ento::SymbolManager::getSymIntExpr(), and clang::ento::SymbolManager::getSymSymExpr().
symbol_iterator clang::ento::SymExpr::symbol_begin | ( | ) | const [inline] |
Definition at line 90 of file SymbolManager.h.
Referenced by computeComplexity(), clang::ento::ProgramState::isTainted(), and clang::ento::SVal::symbol_begin().
static symbol_iterator clang::ento::SymExpr::symbol_end | ( | ) | [inline, static] |
Definition at line 93 of file SymbolManager.h.
Referenced by computeComplexity(), and clang::ento::ProgramState::isTainted().