clang 19.0.0git
Public Member Functions | Static Public Member Functions | List of all members
clang::ento::SymbolDerived Class Reference

A symbol representing the value of a MemRegion whose parent region has symbolic value. More...

#include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"

Inheritance diagram for clang::ento::SymbolDerived:
Inheritance graph
[legend]

Public Member Functions

 SymbolDerived (SymbolID sym, SymbolRef parent, const TypedValueRegion *r)
 
LLVM_ATTRIBUTE_RETURNS_NONNULL SymbolRef getParentSymbol () const
 
LLVM_ATTRIBUTE_RETURNS_NONNULL const TypedValueRegiongetRegion () 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 MemRegiongetOriginRegion () const override
 Find the region from which this symbol originates.
 
void Profile (llvm::FoldingSetNodeID &profile) 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_iteratorsymbols () const
 
virtual unsigned computeComplexity () const =0
 
virtual const MemRegiongetOriginRegion () 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 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
 

Detailed Description

A symbol representing the value of a MemRegion whose parent region has symbolic value.

Definition at line 135 of file SymbolManager.h.

Constructor & Destructor Documentation

◆ SymbolDerived()

clang::ento::SymbolDerived::SymbolDerived ( SymbolID  sym,
SymbolRef  parent,
const TypedValueRegion r 
)
inline

Member Function Documentation

◆ classof()

static bool clang::ento::SymbolDerived::classof ( const SymExpr SE)
inlinestatic

Definition at line 171 of file SymbolManager.h.

References clang::ento::SymExpr::getKind().

◆ dumpToStream()

void SymbolDerived::dumpToStream ( raw_ostream &  os) const
overridevirtual

◆ getKindStr()

StringRef SymbolDerived::getKindStr ( ) const
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().

◆ getOriginRegion()

const MemRegion * clang::ento::SymbolDerived::getOriginRegion ( ) const
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 157 of file SymbolManager.h.

References getRegion().

◆ getParentSymbol()

LLVM_ATTRIBUTE_RETURNS_NONNULL SymbolRef clang::ento::SymbolDerived::getParentSymbol ( ) const
inline

Definition at line 148 of file SymbolManager.h.

Referenced by dumpToStream().

◆ getRegion()

LLVM_ATTRIBUTE_RETURNS_NONNULL const TypedValueRegion * clang::ento::SymbolDerived::getRegion ( ) const
inline

Definition at line 150 of file SymbolManager.h.

Referenced by dumpToStream(), and getOriginRegion().

◆ getType()

QualType SymbolDerived::getType ( ) const
overridevirtual

Implements clang::ento::SymExpr.

Definition at line 332 of file SymbolManager.cpp.

◆ Profile() [1/2]

void clang::ento::SymbolDerived::Profile ( llvm::FoldingSetNodeID &  profile)
inlineoverridevirtual

Implements clang::ento::SymExpr.

Definition at line 166 of file SymbolManager.h.

References Profile().

◆ Profile() [2/2]

static void clang::ento::SymbolDerived::Profile ( llvm::FoldingSetNodeID &  profile,
SymbolRef  parent,
const TypedValueRegion r 
)
inlinestatic

Definition at line 159 of file SymbolManager.h.

Referenced by clang::ento::SymbolManager::getDerivedSymbol(), and Profile().


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