clang
10.0.0git
|
A symbol representing the value stored at a MemRegion. More...
#include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"
Public Member Functions | |
SymbolRegionValue (SymbolID sym, const TypedValueRegion *r) | |
const TypedValueRegion * | getRegion () const |
void | Profile (llvm::FoldingSetNodeID &profile) override |
void | dumpToStream (raw_ostream &os) const override |
const MemRegion * | getOriginRegion () const override |
Find the region from which this symbol originates. More... | |
QualType | getType () const override |
![]() | |
~SymbolData () override=default | |
SymbolID | getSymbolID () const |
unsigned | computeComplexity () const override |
![]() | |
virtual | ~SymExpr ()=default |
Kind | getKind () const |
virtual void | dump () const |
symbol_iterator | symbol_begin () const |
Static Public Member Functions | |
static void | Profile (llvm::FoldingSetNodeID &profile, const TypedValueRegion *R) |
static bool | classof (const SymExpr *SE) |
![]() | |
static bool | classof (const SymExpr *SE) |
![]() | |
static symbol_iterator | symbol_end () |
Additional Inherited Members | |
![]() | |
enum | Kind |
![]() | |
SymbolData (Kind k, SymbolID sym) | |
![]() | |
SymExpr (Kind k) | |
![]() | |
static bool | isValidTypeForSymbol (QualType T) |
![]() | |
unsigned | Complexity = 0 |
A symbol representing the value stored at a MemRegion.
Definition at line 41 of file SymbolManager.h.
|
inline |
Definition at line 45 of file SymbolManager.h.
References clang::ento::TypedValueRegion::getValueType(), and clang::ento::SymExpr::isValidTypeForSymbol().
Definition at line 68 of file SymbolManager.h.
References clang::ento::SymExpr::getKind().
Referenced by clang::ento::BinarySymExpr::BinarySymExpr().
|
overridevirtual |
Reimplemented from clang::ento::SymExpr.
Definition at line 110 of file SymbolManager.cpp.
References clang::QualType::getAsString(), and clang::ento::SymExpr::getType().
Referenced by clang::ento::SymbolCast::getOperand(), clang::ento::SymbolDerived::getRegion(), clang::ento::SymbolExtent::getRegion(), clang::ento::SymSymExpr::getRHS(), clang::ento::SymbolConjured::getTag(), clang::ento::SymbolMetadata::getTag(), clang::ento::IntSymExpr::IntSymExpr(), Profile(), and clang::ento::SymIntExpr::SymIntExpr().
|
inlineoverridevirtual |
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 from clang::ento::SymExpr.
Definition at line 63 of file SymbolManager.h.
References getRegion(), and getType().
|
inline |
Definition at line 51 of file SymbolManager.h.
Referenced by getOriginRegion(), clang::ento::SymbolDerived::getOriginRegion(), and clang::ento::SValExplainer::VisitSymbolRegionValue().
|
overridevirtual |
Implements clang::ento::SymExpr.
Definition at line 340 of file SymbolManager.cpp.
Referenced by getOriginRegion(), clang::ento::SymbolDerived::getRegion(), clang::ento::SymbolExtent::getRegion(), clang::ento::SymbolConjured::getTag(), clang::ento::SymbolMetadata::getTag(), clang::ento::SymIntExpr::Profile(), clang::ento::IntSymExpr::Profile(), and clang::ento::SymSymExpr::Profile().
|
inlinestatic |
Definition at line 53 of file SymbolManager.h.
Referenced by Profile(), clang::ento::SymbolConjured::Profile(), clang::ento::SymbolDerived::Profile(), clang::ento::SymbolExtent::Profile(), clang::ento::SymbolMetadata::Profile(), clang::ento::SymbolCast::Profile(), clang::ento::SymIntExpr::Profile(), clang::ento::IntSymExpr::Profile(), and clang::ento::SymSymExpr::Profile().
|
inlineoverridevirtual |
Implements clang::ento::SymExpr.
Definition at line 58 of file SymbolManager.h.
References dumpToStream(), and Profile().