class CFGBlock

Declaration

class CFGBlock { /* full declaration omitted */ };

Description

Represents a single basic block in a source-level CFG. It consists of: (1) A set of statements/expressions (which may contain subexpressions). (2) A "terminator" statement (not in the set of statements). (3) A list of successors and predecessors. Terminator: The terminator represents the type of control-flow that occurs at the end of the basic block. The terminator is a Stmt* referring to an AST node that has control-flow: if-statements, breaks, loops, etc. If the control-flow is conditional, the condition expression will appear within the set of statements in the block (usually the last statement). Predecessors: the order in the set of predecessors is arbitrary. Successors: the order in the set of successors is NOT arbitrary. We currently have the following orderings based on the terminator: Terminator | Successor Ordering ------------------|------------------------------------ if | Then Block; Else Block ? operator | LHS expression; RHS expression logical and/or | expression that consumes the op, RHS vbase inits | already handled by the most derived class; not yet But note that any of that may be NULL in case of optimized-out edges.

Declared at: clang/include/clang/Analysis/CFG.h:577

Member Variables

public clang::CFGBlock::ElementList Elements
The set of statements in the basic block.
public clang::Stmt* Label = nullptr
An (optional) label that prefixes the executable statements in the block. When this variable is non-NULL, it is either an instance of LabelStmt, SwitchCase or CXXCatchStmt.
public clang::CFGTerminator Terminator
The terminator for a basic block that indicates the type of control-flow that occurs between a block and its successors.
public const clang::Stmt* LoopTarget = nullptr
Some blocks are used to represent the "loop edge" to the start of a loop from within the loop body. This Stmt* will be refer to the loop statement for such blocks (and be null otherwise).
public unsigned int BlockID
A numerical ID assigned to a CFGBlock during construction of the CFG.
private clang::CFGBlock::AdjacentBlocks Preds
private clang::CFGBlock::AdjacentBlocks Succs
private unsigned int HasNoReturnElement
Optimization Note: This bit could be profitably folded with Terminator's storage if the memory usage of CFGBlock becomes an issue.
private clang::CFG* Parent
The parent CFG that owns this CFGBlock.

Method Overview

  • public CFGBlock(unsigned int blockid, clang::BumpVectorContext & C, clang::CFG * parent)
  • public static bool FilterEdge(const clang::CFGBlock::FilterOptions & F, const clang::CFGBlock * Src, const clang::CFGBlock * Dst)
  • public void addSuccessor(clang::CFGBlock::AdjacentBlock Succ, clang::BumpVectorContext & C)
  • public void appendAutomaticObjDtor(clang::VarDecl * VD, clang::Stmt * S, clang::BumpVectorContext & C)
  • public void appendBaseDtor(const clang::CXXBaseSpecifier * BS, clang::BumpVectorContext & C)
  • public void appendCXXRecordTypedCall(clang::Expr * E, const clang::ConstructionContext * CC, clang::BumpVectorContext & C)
  • public void appendConstructor(clang::CXXConstructExpr * CE, const clang::ConstructionContext * CC, clang::BumpVectorContext & C)
  • public void appendDeleteDtor(clang::CXXRecordDecl * RD, clang::CXXDeleteExpr * DE, clang::BumpVectorContext & C)
  • public void appendInitializer(clang::CXXCtorInitializer * initializer, clang::BumpVectorContext & C)
  • public void appendLifetimeEnds(clang::VarDecl * VD, clang::Stmt * S, clang::BumpVectorContext & C)
  • public void appendLoopExit(const clang::Stmt * LoopStmt, clang::BumpVectorContext & C)
  • public void appendMemberDtor(clang::FieldDecl * FD, clang::BumpVectorContext & C)
  • public void appendNewAllocator(clang::CXXNewExpr * NE, clang::BumpVectorContext & C)
  • public void appendScopeBegin(const clang::VarDecl * VD, const clang::Stmt * S, clang::BumpVectorContext & C)
  • public void appendScopeEnd(const clang::VarDecl * VD, const clang::Stmt * S, clang::BumpVectorContext & C)
  • public void appendStmt(clang::Stmt * statement, clang::BumpVectorContext & C)
  • public void appendTemporaryDtor(clang::CXXBindTemporaryExpr * E, clang::BumpVectorContext & C)
  • public clang::CFGElement back() const
  • public clang::CFGBlock::iterator begin()
  • public clang::CFGBlock::const_iterator begin() const
  • public clang::CFGBlock::iterator beginAutomaticObjDtorsInsert(clang::CFGBlock::iterator I, size_t Cnt, clang::BumpVectorContext & C)
  • public clang::CFGBlock::iterator beginLifetimeEndsInsert(clang::CFGBlock::iterator I, size_t Cnt, clang::BumpVectorContext & C)
  • public clang::CFGBlock::iterator beginScopeEndInsert(clang::CFGBlock::iterator I, size_t Cnt, clang::BumpVectorContext & C)
  • public void dump() const
  • public void dump(const clang::CFG * cfg, const clang::LangOptions & LO, bool ShowColors = false) const
  • public bool empty() const
  • public clang::CFGBlock::const_iterator end() const
  • public clang::CFGBlock::iterator end()
  • public clang::CFGBlock::filtered_pred_iterator filtered_pred_start_end(const clang::CFGBlock::FilterOptions & f) const
  • public clang::CFGBlock::filtered_succ_iterator filtered_succ_start_end(const clang::CFGBlock::FilterOptions & f) const
  • public clang::CFGElement front() const
  • public unsigned int getBlockID() const
  • public size_t getIndexInCFG() const
  • public const clang::Stmt * getLabel() const
  • public clang::Stmt * getLabel()
  • public const clang::Expr * getLastCondition() const
  • public const clang::Stmt * getLoopTarget() const
  • public clang::CFG * getParent() const
  • public clang::CFGTerminator getTerminator() const
  • public const clang::Stmt * getTerminatorCondition(bool StripParens = true) const
  • public clang::Stmt * getTerminatorCondition(bool StripParens = true)
  • public const clang::Stmt * getTerminatorStmt() const
  • public clang::Stmt * getTerminatorStmt()
  • public bool hasNoReturnElement() const
  • public clang::CFGBlock::iterator insertAutomaticObjDtor(clang::CFGBlock::iterator I, clang::VarDecl * VD, clang::Stmt * S)
  • public clang::CFGBlock::iterator insertLifetimeEnds(clang::CFGBlock::iterator I, clang::VarDecl * VD, clang::Stmt * S)
  • public clang::CFGBlock::iterator insertScopeEnd(clang::CFGBlock::iterator I, clang::VarDecl * VD, clang::Stmt * S)
  • public bool isInevitablySinking() const
  • public clang::CFGBlock::pred_iterator pred_begin()
  • public clang::CFGBlock::const_pred_iterator pred_begin() const
  • public bool pred_empty() const
  • public clang::CFGBlock::pred_iterator pred_end()
  • public clang::CFGBlock::const_pred_iterator pred_end() const
  • public clang::CFGBlock::const_pred_reverse_iterator pred_rbegin() const
  • public clang::CFGBlock::pred_reverse_iterator pred_rbegin()
  • public clang::CFGBlock::const_pred_reverse_iterator pred_rend() const
  • public clang::CFGBlock::pred_reverse_iterator pred_rend()
  • public unsigned int pred_size() const
  • public clang::CFGBlock::pred_const_range preds() const
  • public clang::CFGBlock::pred_range preds()
  • public void prependScopeBegin(const clang::VarDecl * VD, const clang::Stmt * S, clang::BumpVectorContext & C)
  • public void prependScopeEnd(const clang::VarDecl * VD, const clang::Stmt * S, clang::BumpVectorContext & C)
  • public void print(llvm::raw_ostream & OS, const clang::CFG * cfg, const clang::LangOptions & LO, bool ShowColors) const
  • public void printAsOperand(llvm::raw_ostream & OS, bool)
  • public void printTerminator(llvm::raw_ostream & OS, const clang::LangOptions & LO) const
  • public void printTerminatorJson(llvm::raw_ostream & Out, const clang::LangOptions & LO, bool AddQuotes) const
  • public clang::CFGBlock::reverse_iterator rbegin()
  • public clang::CFGBlock::const_reverse_iterator rbegin() const
  • public clang::CFGBlock::ref_iterator ref_begin()
  • public clang::CFGBlock::const_ref_iterator ref_begin() const
  • public clang::CFGBlock::ref_iterator ref_end()
  • public clang::CFGBlock::const_ref_iterator ref_end() const
  • public clang::CFGBlock::ref_iterator_range refs()
  • public clang::CFGBlock::const_ref_iterator_range refs() const
  • public clang::CFGBlock::reverse_iterator rend()
  • public clang::CFGBlock::const_reverse_iterator rend() const
  • public clang::CFGBlock::reverse_ref_iterator rref_begin()
  • public clang::CFGBlock::const_reverse_ref_iterator rref_begin() const
  • public clang::CFGBlock::reverse_ref_iterator rref_end()
  • public clang::CFGBlock::const_reverse_ref_iterator rref_end() const
  • public clang::CFGBlock::reverse_ref_iterator_range rrefs()
  • public clang::CFGBlock::const_reverse_ref_iterator_range rrefs() const
  • public void setHasNoReturnElement()
  • public void setLabel(clang::Stmt * Statement)
  • public void setLoopTarget(const clang::Stmt * loopTarget)
  • public void setTerminator(clang::CFGTerminator Term)
  • public unsigned int size() const
  • public clang::CFGBlock::succ_iterator succ_begin()
  • public clang::CFGBlock::const_succ_iterator succ_begin() const
  • public bool succ_empty() const
  • public clang::CFGBlock::const_succ_iterator succ_end() const
  • public clang::CFGBlock::succ_iterator succ_end()
  • public clang::CFGBlock::const_succ_reverse_iterator succ_rbegin() const
  • public clang::CFGBlock::succ_reverse_iterator succ_rbegin()
  • public clang::CFGBlock::const_succ_reverse_iterator succ_rend() const
  • public clang::CFGBlock::succ_reverse_iterator succ_rend()
  • public unsigned int succ_size() const
  • public clang::CFGBlock::succ_range succs()
  • public clang::CFGBlock::succ_const_range succs() const

Methods

CFGBlock(unsigned int blockid,
         clang::BumpVectorContext& C,
         clang::CFG* parent)

Declared at: clang/include/clang/Analysis/CFG.h:861

Parameters

unsigned int blockid
clang::BumpVectorContext& C
clang::CFG* parent

static bool FilterEdge(
    const clang::CFGBlock::FilterOptions& F,
    const clang::CFGBlock* Src,
    const clang::CFGBlock* Dst)

Declared at: clang/include/clang/Analysis/CFG.h:990

Parameters

const clang::CFGBlock::FilterOptions& F
const clang::CFGBlock* Src
const clang::CFGBlock* Dst

void addSuccessor(
    clang::CFGBlock::AdjacentBlock Succ,
    clang::BumpVectorContext& C)

Description

Adds a (potentially unreachable) successor block to the current block.

Declared at: clang/include/clang/Analysis/CFG.h:1094

Parameters

clang::CFGBlock::AdjacentBlock Succ
clang::BumpVectorContext& C

void appendAutomaticObjDtor(
    clang::VarDecl* VD,
    clang::Stmt* S,
    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1151

Parameters

clang::VarDecl* VD
clang::Stmt* S
clang::BumpVectorContext& C

void appendBaseDtor(
    const clang::CXXBaseSpecifier* BS,
    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1139

Parameters

const clang::CXXBaseSpecifier* BS
clang::BumpVectorContext& C

void appendCXXRecordTypedCall(
    clang::Expr* E,
    const clang::ConstructionContext* CC,
    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1105

Parameters

clang::Expr* E
const clang::ConstructionContext* CC
clang::BumpVectorContext& C

void appendConstructor(
    clang::CXXConstructExpr* CE,
    const clang::ConstructionContext* CC,
    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1100

Parameters

clang::CXXConstructExpr* CE
const clang::ConstructionContext* CC
clang::BumpVectorContext& C

void appendDeleteDtor(clang::CXXRecordDecl* RD,
                      clang::CXXDeleteExpr* DE,
                      clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1163

Parameters

clang::CXXRecordDecl* RD
clang::CXXDeleteExpr* DE
clang::BumpVectorContext& C

void appendInitializer(
    clang::CXXCtorInitializer* initializer,
    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1111

Parameters

clang::CXXCtorInitializer* initializer
clang::BumpVectorContext& C

void appendLifetimeEnds(
    clang::VarDecl* VD,
    clang::Stmt* S,
    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1155

Parameters

clang::VarDecl* VD
clang::Stmt* S
clang::BumpVectorContext& C

void appendLoopExit(const clang::Stmt* LoopStmt,
                    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1159

Parameters

const clang::Stmt* LoopStmt
clang::BumpVectorContext& C

void appendMemberDtor(clang::FieldDecl* FD,
                      clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1143

Parameters

clang::FieldDecl* FD
clang::BumpVectorContext& C

void appendNewAllocator(
    clang::CXXNewExpr* NE,
    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1116

Parameters

clang::CXXNewExpr* NE
clang::BumpVectorContext& C

void appendScopeBegin(const clang::VarDecl* VD,
                      const clang::Stmt* S,
                      clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1121

Parameters

const clang::VarDecl* VD
const clang::Stmt* S
clang::BumpVectorContext& C

void appendScopeEnd(const clang::VarDecl* VD,
                    const clang::Stmt* S,
                    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1131

Parameters

const clang::VarDecl* VD
const clang::Stmt* S
clang::BumpVectorContext& C

void appendStmt(clang::Stmt* statement,
                clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1096

Parameters

clang::Stmt* statement
clang::BumpVectorContext& C

void appendTemporaryDtor(
    clang::CXXBindTemporaryExpr* E,
    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1147

Parameters

clang::CXXBindTemporaryExpr* E
clang::BumpVectorContext& C

clang::CFGElement back() const

Declared at: clang/include/clang/Analysis/CFG.h:874

clang::CFGBlock::iterator begin()

Declared at: clang/include/clang/Analysis/CFG.h:876

clang::CFGBlock::const_iterator begin() const

Declared at: clang/include/clang/Analysis/CFG.h:878

clang::CFGBlock::iterator
beginAutomaticObjDtorsInsert(
    clang::CFGBlock::iterator I,
    size_t Cnt,
    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1170

Parameters

clang::CFGBlock::iterator I
size_t Cnt
clang::BumpVectorContext& C

clang::CFGBlock::iterator beginLifetimeEndsInsert(
    clang::CFGBlock::iterator I,
    size_t Cnt,
    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1183

Parameters

clang::CFGBlock::iterator I
size_t Cnt
clang::BumpVectorContext& C

clang::CFGBlock::iterator beginScopeEndInsert(
    clang::CFGBlock::iterator I,
    size_t Cnt,
    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1196

Parameters

clang::CFGBlock::iterator I
size_t Cnt
clang::BumpVectorContext& C

void dump() const

Declared at: clang/include/clang/Analysis/CFG.h:1079

void dump(const clang::CFG* cfg,
          const clang::LangOptions& LO,
          bool ShowColors = false) const

Declared at: clang/include/clang/Analysis/CFG.h:1081

Parameters

const clang::CFG* cfg
const clang::LangOptions& LO
bool ShowColors = false

bool empty() const

Declared at: clang/include/clang/Analysis/CFG.h:919

clang::CFGBlock::const_iterator end() const

Declared at: clang/include/clang/Analysis/CFG.h:879

clang::CFGBlock::iterator end()

Declared at: clang/include/clang/Analysis/CFG.h:877

clang::CFGBlock::filtered_pred_iterator
filtered_pred_start_end(
    const clang::CFGBlock::FilterOptions& f) const

Declared at: clang/include/clang/Analysis/CFG.h:1030

Parameters

const clang::CFGBlock::FilterOptions& f

clang::CFGBlock::filtered_succ_iterator
filtered_succ_start_end(
    const clang::CFGBlock::FilterOptions& f) const

Declared at: clang/include/clang/Analysis/CFG.h:1034

Parameters

const clang::CFGBlock::FilterOptions& f

clang::CFGElement front() const

Declared at: clang/include/clang/Analysis/CFG.h:873

unsigned int getBlockID() const

Declared at: clang/include/clang/Analysis/CFG.h:1075

size_t getIndexInCFG() const

Declared at: clang/include/clang/Analysis/CFG.h:871

const clang::Stmt* getLabel() const

Declared at: clang/include/clang/Analysis/CFG.h:1071

clang::Stmt* getLabel()

Declared at: clang/include/clang/Analysis/CFG.h:1070

const clang::Expr* getLastCondition() const

Declared at: clang/include/clang/Analysis/CFG.h:1060

Returns

the last (\c rbegin()) condition, e.g. observe the following code snippet: if (A & & B & & C) A block would be created for \c A, \c B, and \c C. For the latter,\c getTerminatorStmt() would retrieve the entire condition, rather than C itself, while this method would only return C.

const clang::Stmt* getLoopTarget() const

Declared at: clang/include/clang/Analysis/CFG.h:1068

clang::CFG* getParent() const

Declared at: clang/include/clang/Analysis/CFG.h:1077

clang::CFGTerminator getTerminator() const

Declared at: clang/include/clang/Analysis/CFG.h:1049

const clang::Stmt* getTerminatorCondition(
    bool StripParens = true) const

Declared at: clang/include/clang/Analysis/CFG.h:1064

Parameters

bool StripParens = true

clang::Stmt* getTerminatorCondition(
    bool StripParens = true)

Declared at: clang/include/clang/Analysis/CFG.h:1062

Parameters

bool StripParens = true

const clang::Stmt* getTerminatorStmt() const

Declared at: clang/include/clang/Analysis/CFG.h:1052

clang::Stmt* getTerminatorStmt()

Declared at: clang/include/clang/Analysis/CFG.h:1051

bool hasNoReturnElement() const

Declared at: clang/include/clang/Analysis/CFG.h:1073

clang::CFGBlock::iterator insertAutomaticObjDtor(
    clang::CFGBlock::iterator I,
    clang::VarDecl* VD,
    clang::Stmt* S)

Declared at: clang/include/clang/Analysis/CFG.h:1175

Parameters

clang::CFGBlock::iterator I
clang::VarDecl* VD
clang::Stmt* S

clang::CFGBlock::iterator insertLifetimeEnds(
    clang::CFGBlock::iterator I,
    clang::VarDecl* VD,
    clang::Stmt* S)

Declared at: clang/include/clang/Analysis/CFG.h:1188

Parameters

clang::CFGBlock::iterator I
clang::VarDecl* VD
clang::Stmt* S

clang::CFGBlock::iterator insertScopeEnd(
    clang::CFGBlock::iterator I,
    clang::VarDecl* VD,
    clang::Stmt* S)

Declared at: clang/include/clang/Analysis/CFG.h:1200

Parameters

clang::CFGBlock::iterator I
clang::VarDecl* VD
clang::Stmt* S

bool isInevitablySinking() const

Description

Returns true if the block would eventually end with a sink (a noreturn node).

Declared at: clang/include/clang/Analysis/CFG.h:1047

clang::CFGBlock::pred_iterator pred_begin()

Declared at: clang/include/clang/Analysis/CFG.h:938

clang::CFGBlock::const_pred_iterator pred_begin()
    const

Declared at: clang/include/clang/Analysis/CFG.h:940

bool pred_empty() const

Declared at: clang/include/clang/Analysis/CFG.h:978

clang::CFGBlock::pred_iterator pred_end()

Declared at: clang/include/clang/Analysis/CFG.h:939

clang::CFGBlock::const_pred_iterator pred_end()
    const

Declared at: clang/include/clang/Analysis/CFG.h:941

clang::CFGBlock::const_pred_reverse_iterator
pred_rbegin() const

Declared at: clang/include/clang/Analysis/CFG.h:945

clang::CFGBlock::pred_reverse_iterator
pred_rbegin()

Declared at: clang/include/clang/Analysis/CFG.h:943

clang::CFGBlock::const_pred_reverse_iterator
pred_rend() const

Declared at: clang/include/clang/Analysis/CFG.h:946

clang::CFGBlock::pred_reverse_iterator pred_rend()

Declared at: clang/include/clang/Analysis/CFG.h:944

unsigned int pred_size() const

Declared at: clang/include/clang/Analysis/CFG.h:977

clang::CFGBlock::pred_const_range preds() const

Declared at: clang/include/clang/Analysis/CFG.h:952

clang::CFGBlock::pred_range preds()

Declared at: clang/include/clang/Analysis/CFG.h:948

void prependScopeBegin(
    const clang::VarDecl* VD,
    const clang::Stmt* S,
    clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1126

Parameters

const clang::VarDecl* VD
const clang::Stmt* S
clang::BumpVectorContext& C

void prependScopeEnd(const clang::VarDecl* VD,
                     const clang::Stmt* S,
                     clang::BumpVectorContext& C)

Declared at: clang/include/clang/Analysis/CFG.h:1135

Parameters

const clang::VarDecl* VD
const clang::Stmt* S
clang::BumpVectorContext& C

void print(llvm::raw_ostream& OS,
           const clang::CFG* cfg,
           const clang::LangOptions& LO,
           bool ShowColors) const

Declared at: clang/include/clang/Analysis/CFG.h:1082

Parameters

llvm::raw_ostream& OS
const clang::CFG* cfg
const clang::LangOptions& LO
bool ShowColors

void printAsOperand(llvm::raw_ostream& OS, bool)

Declared at: clang/include/clang/Analysis/CFG.h:1089

Parameters

llvm::raw_ostream& OS
bool

void printTerminator(
    llvm::raw_ostream& OS,
    const clang::LangOptions& LO) const

Declared at: clang/include/clang/Analysis/CFG.h:1085

Parameters

llvm::raw_ostream& OS
const clang::LangOptions& LO

void printTerminatorJson(
    llvm::raw_ostream& Out,
    const clang::LangOptions& LO,
    bool AddQuotes) const

Declared at: clang/include/clang/Analysis/CFG.h:1086

Parameters

llvm::raw_ostream& Out
const clang::LangOptions& LO
bool AddQuotes

clang::CFGBlock::reverse_iterator rbegin()

Declared at: clang/include/clang/Analysis/CFG.h:881

clang::CFGBlock::const_reverse_iterator rbegin()
    const

Declared at: clang/include/clang/Analysis/CFG.h:883

clang::CFGBlock::ref_iterator ref_begin()

Declared at: clang/include/clang/Analysis/CFG.h:901

clang::CFGBlock::const_ref_iterator ref_begin()
    const

Declared at: clang/include/clang/Analysis/CFG.h:903

clang::CFGBlock::ref_iterator ref_end()

Declared at: clang/include/clang/Analysis/CFG.h:902

clang::CFGBlock::const_ref_iterator ref_end()
    const

Declared at: clang/include/clang/Analysis/CFG.h:904

clang::CFGBlock::ref_iterator_range refs()

Declared at: clang/include/clang/Analysis/CFG.h:911

clang::CFGBlock::const_ref_iterator_range refs()
    const

Declared at: clang/include/clang/Analysis/CFG.h:912

clang::CFGBlock::reverse_iterator rend()

Declared at: clang/include/clang/Analysis/CFG.h:882

clang::CFGBlock::const_reverse_iterator rend()
    const

Declared at: clang/include/clang/Analysis/CFG.h:884

clang::CFGBlock::reverse_ref_iterator rref_begin()

Declared at: clang/include/clang/Analysis/CFG.h:906

clang::CFGBlock::const_reverse_ref_iterator
rref_begin() const

Declared at: clang/include/clang/Analysis/CFG.h:908

clang::CFGBlock::reverse_ref_iterator rref_end()

Declared at: clang/include/clang/Analysis/CFG.h:907

clang::CFGBlock::const_reverse_ref_iterator
rref_end() const

Declared at: clang/include/clang/Analysis/CFG.h:909

clang::CFGBlock::reverse_ref_iterator_range
rrefs()

Declared at: clang/include/clang/Analysis/CFG.h:913

clang::CFGBlock::const_reverse_ref_iterator_range
rrefs() const

Declared at: clang/include/clang/Analysis/CFG.h:914

void setHasNoReturnElement()

Declared at: clang/include/clang/Analysis/CFG.h:1043

void setLabel(clang::Stmt* Statement)

Declared at: clang/include/clang/Analysis/CFG.h:1041

Parameters

clang::Stmt* Statement

void setLoopTarget(const clang::Stmt* loopTarget)

Declared at: clang/include/clang/Analysis/CFG.h:1042

Parameters

const clang::Stmt* loopTarget

void setTerminator(clang::CFGTerminator Term)

Declared at: clang/include/clang/Analysis/CFG.h:1040

Parameters

clang::CFGTerminator Term

unsigned int size() const

Declared at: clang/include/clang/Analysis/CFG.h:918

clang::CFGBlock::succ_iterator succ_begin()

Declared at: clang/include/clang/Analysis/CFG.h:956

clang::CFGBlock::const_succ_iterator succ_begin()
    const

Declared at: clang/include/clang/Analysis/CFG.h:958

bool succ_empty() const

Declared at: clang/include/clang/Analysis/CFG.h:975

clang::CFGBlock::const_succ_iterator succ_end()
    const

Declared at: clang/include/clang/Analysis/CFG.h:959

clang::CFGBlock::succ_iterator succ_end()

Declared at: clang/include/clang/Analysis/CFG.h:957

clang::CFGBlock::const_succ_reverse_iterator
succ_rbegin() const

Declared at: clang/include/clang/Analysis/CFG.h:963

clang::CFGBlock::succ_reverse_iterator
succ_rbegin()

Declared at: clang/include/clang/Analysis/CFG.h:961

clang::CFGBlock::const_succ_reverse_iterator
succ_rend() const

Declared at: clang/include/clang/Analysis/CFG.h:964

clang::CFGBlock::succ_reverse_iterator succ_rend()

Declared at: clang/include/clang/Analysis/CFG.h:962

unsigned int succ_size() const

Declared at: clang/include/clang/Analysis/CFG.h:974

clang::CFGBlock::succ_range succs()

Declared at: clang/include/clang/Analysis/CFG.h:966

clang::CFGBlock::succ_const_range succs() const

Declared at: clang/include/clang/Analysis/CFG.h:970