clang 10.0.0git

Public Types | Public Member Functions | List of all members
clang::CFGTerminator Class Reference

Represents CFGBlock terminator statement. More...

`#include "clang/Analysis/CFG.h"`

## Public Types
enum | Kind { StmtBranch, TemporaryDtorsBranch, VirtualBaseBranch, NumKindsMinusOne = VirtualBaseBranch }

## Public Member Functions
| CFGTerminator ()
| CFGTerminator (Stmt *S, Kind K=StmtBranch)
bool | isValid () const
Stmt * | getStmt ()
const Stmt * | getStmt () const
Kind | getKind () const
bool | isStmtBranch () const
bool | isTemporaryDtorsBranch () const
bool | isVirtualBaseBranch () const

## Detailed Description

Represents CFGBlock terminator statement.

Definition at line 503 of file CFG.h.

## Member Enumeration Documentation

## ◆ Kind

enum clang::CFGTerminator::Kind

Enumerator
StmtBranch | A branch that corresponds to a statement in the code, such as an if-statement.
TemporaryDtorsBranch | A branch in control flow of destructors of temporaries. In this case terminator statement is the same statement that branches control flow in evaluation of matching full expression.
VirtualBaseBranch | A shortcut around virtual base initializers. It gets taken when virtual base classes have already been initialized by the constructor of the most derived class while we're in the base class.
NumKindsMinusOne | Number of different kinds, for sanity checks. We subtract 1 so that to keep receiving compiler warnings when we don't cover all enum values in a switch.

Definition at line 505 of file CFG.h.

## Constructor & Destructor Documentation

## ◆ CFGTerminator() [1/2]

clang::CFGTerminator::CFGTerminator | ( |  | ) |
| inline

Definition at line 531 of file CFG.h.

## ◆ CFGTerminator() [2/2]

clang::CFGTerminator::CFGTerminator | ( | Stmt * | S,
|  | Kind | K = `StmtBranch`
| ) |  |
| inline

Definition at line 532 of file CFG.h.

## Member Function Documentation

## ◆ getKind()

Kind clang::CFGTerminator::getKind | ( |  | ) | const
| inline

Definition at line 537 of file CFG.h.

Referenced by clang::CFGBlock::FilterEdge().

## ◆ getStmt() [1/2]

Stmt* clang::CFGTerminator::getStmt | ( |  | ) |
| inline

Definition at line 535 of file CFG.h.

Referenced by clang::CFGBlock::FilterEdge(), llvm::simplify_type< ::clang::CFGTerminator >::getSimplifiedValue(), clang::CFGBlock::getTerminatorStmt(), clang::consumed::ConsumedStateMap::operator!=(), and clang::ento::ExprEngine::VisitLogicalExpr().

## ◆ getStmt() [2/2]

const Stmt* clang::CFGTerminator::getStmt | ( |  | ) | const
| inline

Definition at line 536 of file CFG.h.

## ◆ isStmtBranch()

bool clang::CFGTerminator::isStmtBranch | ( |  | ) | const
| inline

Definition at line 539 of file CFG.h.

References clang::CFGElement::getKind().

Referenced by ResolveCondition().

## ◆ isTemporaryDtorsBranch()

bool clang::CFGTerminator::isTemporaryDtorsBranch | ( |  | ) | const
| inline

Definition at line 542 of file CFG.h.

References clang::CFGElement::getKind().

## ◆ isValid()

bool clang::CFGTerminator::isValid | ( |  | ) | const
| inline

Definition at line 534 of file CFG.h.

Referenced by print_block().

## ◆ isVirtualBaseBranch()

bool clang::CFGTerminator::isVirtualBaseBranch | ( |  | ) | const
| inline

Definition at line 545 of file CFG.h.

References clang::CFGElement::getKind().

Referenced by clang::ento::CoreEngine::ExecuteWorkListWithInitialState().

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

- include/clang/Analysis/CFG.h