class SymExpr

Declaration

class SymExpr : public Node { /* full declaration omitted */ };

Description

Symbolic value. These values used to capture symbolic execution of the program.

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:29

Inherits from: FoldingSetBase::Node

Member Variables

private clang::ento::SymExpr::Kind K
protected unsigned int Complexity = 0

Method Overview

  • public virtual void Profile(llvm::FoldingSetNodeID & profile)
  • protected SymExpr(clang::ento::SymExpr::Kind k)
  • private virtual void anchor()
  • public virtual unsigned int computeComplexity() const
  • public virtual void dump() const
  • public virtual void dumpToStream(llvm::raw_ostream & os) const
  • public clang::ento::SymExpr::Kind getKind() const
  • public virtual const clang::ento::MemRegion * getOriginRegion() const
  • public virtual clang::QualType getType() const
  • protected static bool isValidTypeForSymbol(clang::QualType T)
  • public clang::ento::SymExpr::symbol_iterator symbol_begin() const
  • public static clang::ento::SymExpr::symbol_iterator symbol_end()
  • public virtual ~SymExpr()

Inherited from FoldingSetBase::Node:

Methods

virtual void Profile(
    llvm::FoldingSetNodeID& profile)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:63

Parameters

llvm::FoldingSetNodeID& profile

SymExpr(clang::ento::SymExpr::Kind k)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:43

Parameters

clang::ento::SymExpr::Kind k

virtual void anchor()

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:30

virtual unsigned int computeComplexity() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:89

virtual void dump() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:58

virtual void dumpToStream(
    llvm::raw_ostream& os) const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:60

Parameters

llvm::raw_ostream& os

clang::ento::SymExpr::Kind getKind() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:56

virtual const clang::ento::MemRegion*
getOriginRegion() const

Description

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.

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:102

virtual clang::QualType getType() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:62

static bool isValidTypeForSymbol(
    clang::QualType T)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:45

Parameters

clang::QualType T

clang::ento::SymExpr::symbol_iterator
symbol_begin() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:86

static clang::ento::SymExpr::symbol_iterator
symbol_end()

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:87

virtual ~SymExpr()

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:54