clang 22.0.0git
clang::ento::SymbolMetadata Class Reference

SymbolMetadata - Represents path-dependent metadata about a specific region. More...

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

Inheritance diagram for clang::ento::SymbolMetadata:
[legend]

Public Member Functions

LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegiongetRegion () const
LLVM_ATTRIBUTE_RETURNS_NONNULL const StmtgetStmt () const
LLVM_ATTRIBUTE_RETURNS_NONNULL const LocationContextgetLocationContext () const
unsigned getCount () const
LLVM_ATTRIBUTE_RETURNS_NONNULL const void * getTag () 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
void Profile (llvm::FoldingSetNodeID &profile) override
Public Member Functions inherited from clang::ento::SymbolData
 ~SymbolData () override=default
unsigned computeComplexity () const override
Public Member Functions inherited from clang::ento::SymExpr
virtual ~SymExpr ()=default
Kind getKind () const
SymbolID getSymbolID () const
 Get a unique identifier for this symbol.
virtual void dump () const
llvm::iterator_range< symbol_iteratorsymbols () const
virtual const MemRegiongetOriginRegion () const
 Find the region from which this symbol originates.

Static Public Member Functions

static void Profile (llvm::FoldingSetNodeID &profile, const MemRegion *R, const Stmt *S, QualType T, const LocationContext *LCtx, unsigned Count, const void *Tag)
static bool classof (const SymExpr *SE)
static constexpr bool classof (Kind K)
Static Public Member Functions inherited from clang::ento::SymbolData
static bool classof (const SymExpr *SE)
static constexpr bool classof (Kind K)

Static Public Attributes

static constexpr Kind ClassKind = SymbolMetadataKind

Friends

class SymExprAllocator

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, SymbolID Sym)
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

SymbolMetadata - Represents path-dependent metadata about a specific region.

Metadata symbols remain live as long as they are marked as in use before dead-symbol sweeping AND their associated regions are still alive. Intended for use by checkers.

Definition at line 221 of file SymbolManager.h.

Member Function Documentation

◆ classof() [1/2]

bool clang::ento::SymbolMetadata::classof ( const SymExpr * SE)
inlinestatic

Definition at line 282 of file SymbolManager.h.

References classof(), and clang::ento::SymExpr::getKind().

Referenced by classof().

◆ classof() [2/2]

constexpr bool clang::ento::SymbolMetadata::classof ( Kind K)
inlinestaticconstexpr

Definition at line 283 of file SymbolManager.h.

References ClassKind.

◆ dumpToStream()

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

Reimplemented from clang::ento::SymExpr.

Definition at line 140 of file SymbolManager.cpp.

References getKindStr(), getRegion(), and clang::ento::SymExpr::getSymbolID().

◆ getCount()

unsigned clang::ento::SymbolMetadata::getCount ( ) const
inline

Definition at line 253 of file SymbolManager.h.

◆ getKindStr()

StringRef SymbolMetadata::getKindStr ( ) const
overridevirtual

Get a string representation of the kind of the region.

Implements clang::ento::SymbolData.

Definition at line 37 of file SymbolManager.cpp.

Referenced by dumpToStream().

◆ getLocationContext()

LLVM_ATTRIBUTE_RETURNS_NONNULL const LocationContext * clang::ento::SymbolMetadata::getLocationContext ( ) const
inline

Definition at line 251 of file SymbolManager.h.

◆ getRegion()

LLVM_ATTRIBUTE_RETURNS_NONNULL const MemRegion * clang::ento::SymbolMetadata::getRegion ( ) const
inline

◆ getStmt()

LLVM_ATTRIBUTE_RETURNS_NONNULL const Stmt * clang::ento::SymbolMetadata::getStmt ( ) const
inline

Definition at line 248 of file SymbolManager.h.

◆ getTag()

LLVM_ATTRIBUTE_RETURNS_NONNULL const void * clang::ento::SymbolMetadata::getTag ( ) const
inline

Definition at line 256 of file SymbolManager.h.

◆ getType()

QualType SymbolMetadata::getType ( ) const
overridevirtual

Implements clang::ento::SymExpr.

Definition at line 218 of file SymbolManager.cpp.

Referenced by clang::ento::SValExplainer::VisitSymbolMetadata().

◆ Profile() [1/2]

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

Implements clang::ento::SymExpr.

Definition at line 276 of file SymbolManager.h.

References Profile().

◆ Profile() [2/2]

void clang::ento::SymbolMetadata::Profile ( llvm::FoldingSetNodeID & profile,
const MemRegion * R,
const Stmt * S,
QualType T,
const LocationContext * LCtx,
unsigned Count,
const void * Tag )
inlinestatic

Definition at line 264 of file SymbolManager.h.

References ClassKind.

Referenced by Profile().

◆ SymExprAllocator

friend class SymExprAllocator
friend

Definition at line 231 of file SymbolManager.h.

References ClassKind, s, clang::ento::SymbolData::SymbolData(), and SymExprAllocator.

Referenced by SymExprAllocator.

Member Data Documentation

◆ ClassKind

Kind clang::ento::SymbolMetadata::ClassKind = SymbolMetadataKind
staticconstexpr

Definition at line 281 of file SymbolManager.h.

Referenced by classof(), Profile(), and SymExprAllocator.


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