clang 20.0.0git
|
A symbol representing the value of a MemRegion whose parent region has symbolic value. More...
#include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"
Public Member Functions | |
LLVM_ATTRIBUTE_RETURNS_NONNULL SymbolRef | getParentSymbol () const |
LLVM_ATTRIBUTE_RETURNS_NONNULL const TypedValueRegion * | getRegion () const |
QualType | getType () const 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. | |
void | Profile (llvm::FoldingSetNodeID &profile) override |
![]() | |
~SymbolData () override=default | |
virtual StringRef | getKindStr () const =0 |
Get a string representation of the kind of the region. | |
unsigned | computeComplexity () const override |
![]() | |
virtual | ~SymExpr ()=default |
Kind | getKind () const |
SymbolID | getSymbolID () const |
Get a unique identifier for this symbol. | |
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, SymbolRef parent, const TypedValueRegion *r) |
static bool | classof (const SymExpr *SE) |
![]() | |
static bool | classof (const SymExpr *SE) |
Friends | |
class | SymExprAllocator |
Additional Inherited Members | |
![]() | |
enum | Kind |
![]() | |
SymbolData (Kind k, SymbolID sym) | |
![]() | |
SymExpr (Kind k, SymbolID Sym) | |
![]() | |
static bool | isValidTypeForSymbol (QualType T) |
![]() | |
unsigned | Complexity = 0 |
A symbol representing the value of a MemRegion whose parent region has symbolic value.
Definition at line 139 of file SymbolManager.h.
Definition at line 176 of file SymbolManager.h.
References clang::ento::SymExpr::getKind().
|
overridevirtual |
Reimplemented from clang::ento::SymExpr.
Definition at line 92 of file SymbolManager.cpp.
References getKindStr(), getParentSymbol(), getRegion(), and clang::ento::SymExpr::getSymbolID().
|
overridevirtual |
Get a string representation of the kind of the region.
Implements clang::ento::SymbolData.
Definition at line 39 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 162 of file SymbolManager.h.
References getRegion().
|
inline |
Definition at line 153 of file SymbolManager.h.
Referenced by dumpToStream().
|
inline |
Definition at line 155 of file SymbolManager.h.
Referenced by dumpToStream(), and getOriginRegion().
|
overridevirtual |
Implements clang::ento::SymExpr.
Definition at line 325 of file SymbolManager.cpp.
|
inlineoverridevirtual |
Implements clang::ento::SymExpr.
Definition at line 171 of file SymbolManager.h.
References Profile().
|
inlinestatic |
Definition at line 164 of file SymbolManager.h.
Referenced by clang::ento::SymbolManager::getDerivedSymbol(), and Profile().
|
friend |
Definition at line 143 of file SymbolManager.h.