class BranchNodeBuilder

Declaration

class BranchNodeBuilder : public NodeBuilder { /* full declaration omitted */ };

Description

BranchNodeBuilder is responsible for constructing the nodes corresponding to the two branches of the if statement - true and false.

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h:437

Inherits from: NodeBuilder

Member Variables

private const clang::CFGBlock* DstT
private const clang::CFGBlock* DstF
private bool InFeasibleTrue
private bool InFeasibleFalse

Inherited from NodeBuilder:

protected C
protected Finalized
protected HasGeneratedNodes = false
protected Frontier

Method Overview

  • public BranchNodeBuilder(clang::ento::ExplodedNode * SrcNode, clang::ento::ExplodedNodeSet & DstSet, const clang::ento::NodeBuilderContext & C, const clang::CFGBlock * dstT, const clang::CFGBlock * dstF)
  • public BranchNodeBuilder(const clang::ento::ExplodedNodeSet & SrcSet, clang::ento::ExplodedNodeSet & DstSet, const clang::ento::NodeBuilderContext & C, const clang::CFGBlock * dstT, const clang::CFGBlock * dstF)
  • private void anchor()
  • public clang::ento::ExplodedNode * generateNode(clang::ento::ProgramStateRef State, bool branch, clang::ento::ExplodedNode * Pred)
  • public const clang::CFGBlock * getTargetBlock(bool branch) const
  • public bool isFeasible(bool branch)
  • public void markInfeasible(bool branch)

Inherited from NodeBuilder:

Methods

BranchNodeBuilder(
    clang::ento::ExplodedNode* SrcNode,
    clang::ento::ExplodedNodeSet& DstSet,
    const clang::ento::NodeBuilderContext& C,
    const clang::CFGBlock* dstT,
    const clang::CFGBlock* dstF)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h:447

Parameters

clang::ento::ExplodedNode* SrcNode
clang::ento::ExplodedNodeSet& DstSet
const clang::ento::NodeBuilderContext& C
const clang::CFGBlock* dstT
const clang::CFGBlock* dstF

BranchNodeBuilder(
    const clang::ento::ExplodedNodeSet& SrcSet,
    clang::ento::ExplodedNodeSet& DstSet,
    const clang::ento::NodeBuilderContext& C,
    const clang::CFGBlock* dstT,
    const clang::CFGBlock* dstF)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h:457

Parameters

const clang::ento::ExplodedNodeSet& SrcSet
clang::ento::ExplodedNodeSet& DstSet
const clang::ento::NodeBuilderContext& C
const clang::CFGBlock* dstT
const clang::CFGBlock* dstF

void anchor()

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h:444

clang::ento::ExplodedNode* generateNode(
    clang::ento::ProgramStateRef State,
    bool branch,
    clang::ento::ExplodedNode* Pred)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h:465

Parameters

clang::ento::ProgramStateRef State
bool branch
clang::ento::ExplodedNode* Pred

const clang::CFGBlock* getTargetBlock(
    bool branch) const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h:468

Parameters

bool branch

bool isFeasible(bool branch)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h:479

Parameters

bool branch

void markInfeasible(bool branch)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h:472

Parameters

bool branch