class Branch

Declaration

class Branch : public Terminator { /* full declaration omitted */ };

Description

A conditional branch to two other blocks. Note that unlike Goto, Branch does not have an index. The target blocks must be child-blocks, and cannot have Phi nodes.

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1407

Inherits from: Terminator

Member Variables

private clang::threadSafety::til::SExpr* Condition
private clang::threadSafety::til::BasicBlock* [2] Branches

Inherited from SExpr:

protected Opcode
protected Reserved = 0
protected Flags = 0
protected SExprID = 0
protected Block = nullptr

Method Overview

  • public Branch(clang::threadSafety::til::SExpr * C, clang::threadSafety::til::BasicBlock * T, clang::threadSafety::til::BasicBlock * E)
  • public Branch(const clang::threadSafety::til::Branch & Br, clang::threadSafety::til::SExpr * C, clang::threadSafety::til::BasicBlock * T, clang::threadSafety::til::BasicBlock * E)
  • public static bool classof(const clang::threadSafety::til::SExpr * E)
  • public template <class C>typename C::CType compare(const clang::threadSafety::til::Branch * E, C & Cmp) const
  • public const clang::threadSafety::til::SExpr * condition() const
  • public clang::threadSafety::til::SExpr * condition()
  • public const clang::threadSafety::til::BasicBlock * elseBlock() const
  • public clang::threadSafety::til::BasicBlock * elseBlock()
  • public ArrayRef<clang::threadSafety::til::BasicBlock *> successors()
  • public const clang::threadSafety::til::BasicBlock * thenBlock() const
  • public clang::threadSafety::til::BasicBlock * thenBlock()
  • public template <class V>typename V::R_SExpr traverse(V & Vs, typename V::R_Ctx Ctx)

Inherited from Terminator:

Inherited from SExpr:

Methods

Branch(clang::threadSafety::til::SExpr* C,
       clang::threadSafety::til::BasicBlock* T,
       clang::threadSafety::til::BasicBlock* E)

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1409

Parameters

clang::threadSafety::til::SExpr* C
clang::threadSafety::til::BasicBlock* T
clang::threadSafety::til::BasicBlock* E

Branch(const clang::threadSafety::til::Branch& Br,
       clang::threadSafety::til::SExpr* C,
       clang::threadSafety::til::BasicBlock* T,
       clang::threadSafety::til::BasicBlock* E)

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1415

Parameters

const clang::threadSafety::til::Branch& Br
clang::threadSafety::til::SExpr* C
clang::threadSafety::til::BasicBlock* T
clang::threadSafety::til::BasicBlock* E

static bool classof(
    const clang::threadSafety::til::SExpr* E)

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1421

Parameters

const clang::threadSafety::til::SExpr* E

template <class C>
typename C::CType compare(
    const clang::threadSafety::til::Branch* E,
    C& Cmp) const

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1446

Templates

C

Parameters

const clang::threadSafety::til::Branch* E
C& Cmp

const clang::threadSafety::til::SExpr* condition()
    const

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1423

clang::threadSafety::til::SExpr* condition()

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1424

const clang::threadSafety::til::BasicBlock*
elseBlock() const

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1429

clang::threadSafety::til::BasicBlock* elseBlock()

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1430

ArrayRef<clang::threadSafety::til::BasicBlock*>
successors()

Description

Return the list of basic blocks that this terminator can branch to.

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1433

const clang::threadSafety::til::BasicBlock*
thenBlock() const

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1426

clang::threadSafety::til::BasicBlock* thenBlock()

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1427

template <class V>
typename V::R_SExpr traverse(
    V& Vs,
    typename V::R_Ctx Ctx)

Declared at: clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h:1438

Templates

V

Parameters

V& Vs
typename V::R_Ctx Ctx