clang 20.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) | |
LLVM_ATTRIBUTE_RETURNS_NONNULL const TypedValueRegion * | getRegion () const |
void | Profile (llvm::FoldingSetNodeID &profile) override |
StringRef | getKindStr () const override |
Get a string representation of the kind of the region. | |
void | dumpToStream (raw_ostream &os) const override |
const MemRegion * | getOriginRegion () const override |
Find the region from which this symbol originates. | |
QualType | getType () const override |
Public Member Functions inherited from clang::ento::SymbolData | |
~SymbolData () override=default | |
virtual StringRef | getKindStr () const =0 |
Get a string representation of the kind of the region. | |
SymbolID | getSymbolID () const |
unsigned | computeComplexity () const override |
Public Member Functions inherited from clang::ento::SymExpr | |
virtual | ~SymExpr ()=default |
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 |
llvm::iterator_range< symbol_iterator > | symbols () const |
virtual unsigned | computeComplexity () const =0 |
virtual const MemRegion * | getOriginRegion () const |
Find the region from which this symbol originates. | |
Static Public Member Functions | |
static void | Profile (llvm::FoldingSetNodeID &profile, const TypedValueRegion *R) |
static bool | classof (const SymExpr *SE) |
Static Public Member Functions inherited from clang::ento::SymbolData | |
static bool | classof (const SymExpr *SE) |
Additional Inherited Members | |
Public Types inherited from clang::ento::SymExpr | |
enum | Kind |
Protected Member Functions inherited from clang::ento::SymbolData | |
SymbolData (Kind k, SymbolID sym) | |
Protected Member Functions inherited from clang::ento::SymExpr | |
SymExpr (Kind k) | |
Static Protected Member Functions inherited from clang::ento::SymExpr | |
static bool | isValidTypeForSymbol (QualType T) |
Protected Attributes inherited from clang::ento::SymExpr | |
unsigned | Complexity = 0 |
A symbol representing the value stored at a MemRegion.
Definition at line 43 of file SymbolManager.h.
|
inline |
Definition at line 47 of file SymbolManager.h.
References clang::ento::TypedValueRegion::getValueType(), and clang::ento::SymExpr::isValidTypeForSymbol().
Definition at line 73 of file SymbolManager.h.
References clang::ento::SymExpr::getKind().
|
overridevirtual |
Reimplemented from clang::ento::SymExpr.
Definition at line 107 of file SymbolManager.cpp.
References getKindStr(), clang::ento::SymbolData::getSymbolID(), and getType().
|
overridevirtual |
Get a string representation of the kind of the region.
Implements clang::ento::SymbolData.
Definition at line 42 of file SymbolManager.cpp.
Referenced by dumpToStream().
|
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. It might return null.
Reimplemented from clang::ento::SymExpr.
Definition at line 68 of file SymbolManager.h.
References getRegion().
|
inline |
Definition at line 54 of file SymbolManager.h.
Referenced by getOriginRegion().
|
overridevirtual |
Implements clang::ento::SymExpr.
Definition at line 343 of file SymbolManager.cpp.
Referenced by dumpToStream().
|
inlineoverridevirtual |
Implements clang::ento::SymExpr.
Definition at line 61 of file SymbolManager.h.
References Profile().
|
inlinestatic |
Definition at line 56 of file SymbolManager.h.
Referenced by clang::ento::SymbolManager::getRegionValueSymbol(), and Profile().