clang 8.0.0

Public Member Functions | Static Public Member Functions | List of all members
clang::ento::SymSymExpr Class Reference

Represents a symbolic expression like 'x' + 'y'. More...

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

Inheritance diagram for clang::ento::SymSymExpr:
[legend]
Collaboration diagram for clang::ento::SymSymExpr:
[legend]

## Public Member Functions
| SymSymExpr (const SymExpr *lhs, BinaryOperator::Opcode op, const SymExpr *rhs, QualType t)
const SymExpr * | getLHS () const
const SymExpr * | getRHS () const
void | dumpToStream (raw_ostream &os) const override
unsigned | computeComplexity () const override
void | Profile (llvm::FoldingSetNodeID &ID) override
Public Member Functions inherited from clang::ento::BinarySymExpr
QualType | getType () const override
BinaryOperator::Opcode | getOpcode () const
Public Member Functions inherited from clang::ento::SymExpr
virtual | ~SymExpr ()=default
Kind | getKind () const
virtual void | dump () const
symbol_iterator | symbol_begin () const
virtual const MemRegion * | getOriginRegion () const
| Find the region from which this symbol originates. More...

## Static Public Member Functions
static void | Profile (llvm::FoldingSetNodeID &ID, const SymExpr *lhs, BinaryOperator::Opcode op, const SymExpr *rhs, QualType t)
static bool | classof (const SymExpr *SE)
Static Public Member Functions inherited from clang::ento::BinarySymExpr
static bool | classof (const SymExpr *SE)
Static Public Member Functions inherited from clang::ento::SymExpr
static symbol_iterator | symbol_end ()

## Additional Inherited Members
Public Types inherited from clang::ento::SymExpr
enum | Kind
Protected Member Functions inherited from clang::ento::BinarySymExpr
| BinarySymExpr (Kind k, BinaryOperator::Opcode op, QualType t)
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

Represents a symbolic expression like 'x' + 'y'.

Definition at line 419 of file SymbolManager.h.

## Constructor & Destructor Documentation

## ◆ SymSymExpr()

clang::ento::SymSymExpr::SymSymExpr | ( | const SymExpr * | lhs,
|  | BinaryOperator::Opcode | op,
|  | const SymExpr * | rhs,
|  | QualType | t
| ) |  |
| inline

Definition at line 424 of file SymbolManager.h.

## Member Function Documentation

## ◆ classof()

static bool clang::ento::SymSymExpr::classof | ( | const SymExpr * | SE | ) |
| inline static

Definition at line 456 of file SymbolManager.h.

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

## ◆ computeComplexity()

unsigned clang::ento::SymSymExpr::computeComplexity | ( |  | ) | const
| inline override virtual

Implements clang::ento::SymExpr.

Definition at line 436 of file SymbolManager.h.

References clang::ento::SymExpr::Complexity, and clang::ento::SymExpr::computeComplexity().

## ◆ dumpToStream()

void SymSymExpr::dumpToStream | ( | raw_ostream & | os | ) | const
| override virtual

Reimplemented from clang::ento::SymExpr.

Definition at line 69 of file SymbolManager.cpp.

References IteratorComparison::getOpcode(), and clang::BinaryOperator::getOpcodeStr().

## ◆ getLHS()

const SymExpr* clang::ento::SymSymExpr::getLHS | ( |  | ) | const
| inline

Definition at line 431 of file SymbolManager.h.

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

## ◆ getRHS()

const SymExpr* clang::ento::SymSymExpr::getRHS | ( |  | ) | const
| inline

Definition at line 432 of file SymbolManager.h.

References clang::ento::SymbolRegionValue::dumpToStream().

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

## ◆ Profile() [1/2]

static void clang::ento::SymSymExpr::Profile | ( | llvm::FoldingSetNodeID & | ID,
|  | const SymExpr * | lhs,
|  | BinaryOperator::Opcode | op,
|  | const SymExpr * | rhs,
|  | QualType | t
| ) |  |
| inline static

Definition at line 442 of file SymbolManager.h.

## ◆ Profile() [2/2]

void clang::ento::SymSymExpr::Profile | ( | llvm::FoldingSetNodeID & | ID | ) |
| inline override virtual

Implements clang::ento::SymExpr.

Definition at line 451 of file SymbolManager.h.

References IteratorComparison::getOpcode(), clang::ento::SymbolRegionValue::getType(), and clang::ento::SymbolRegionValue::Profile().

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

- include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
- lib/StaticAnalyzer/Core/SymbolManager.cpp