class StmtNodeBuilder

Declaration

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

Description

This builder class is useful for generating nodes that resulted from visiting a statement. The main difference from its parent NodeBuilder is that it creates a statement specific ProgramPoint.

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

Inherits from: NodeBuilder

Member Variables

private clang::ento::NodeBuilder* EnclosingBldr

Inherited from NodeBuilder:

protected C
protected Finalized
protected HasGeneratedNodes = false
protected Frontier

Method Overview

  • public StmtNodeBuilder(clang::ento::ExplodedNode * SrcNode, clang::ento::ExplodedNodeSet & DstSet, const clang::ento::NodeBuilderContext & Ctx, clang::ento::NodeBuilder * Enclosing = nullptr)
  • public StmtNodeBuilder(clang::ento::ExplodedNodeSet & SrcSet, clang::ento::ExplodedNodeSet & DstSet, const clang::ento::NodeBuilderContext & Ctx, clang::ento::NodeBuilder * Enclosing = nullptr)
  • public clang::ento::ExplodedNode * generateNode(const clang::Stmt * S, clang::ento::ExplodedNode * Pred, clang::ento::ProgramStateRef St, const clang::ProgramPointTag * tag = nullptr, ProgramPoint::Kind K = ProgramPoint::PostStmtKind)
  • public clang::ento::ExplodedNode * generateSink(const clang::Stmt * S, clang::ento::ExplodedNode * Pred, clang::ento::ProgramStateRef St, const clang::ProgramPointTag * tag = nullptr, ProgramPoint::Kind K = ProgramPoint::PostStmtKind)
  • public ~StmtNodeBuilder()

Inherited from NodeBuilder:

Methods

StmtNodeBuilder(
    clang::ento::ExplodedNode* SrcNode,
    clang::ento::ExplodedNodeSet& DstSet,
    const clang::ento::NodeBuilderContext& Ctx,
    clang::ento::NodeBuilder* Enclosing = nullptr)

Description

Constructs a StmtNodeBuilder. If the builder is going to process nodes currently owned by another builder(with larger scope), use Enclosing builder to transfer ownership.

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

Parameters

clang::ento::ExplodedNode* SrcNode
clang::ento::ExplodedNodeSet& DstSet
const clang::ento::NodeBuilderContext& Ctx
clang::ento::NodeBuilder* Enclosing = nullptr

StmtNodeBuilder(
    clang::ento::ExplodedNodeSet& SrcSet,
    clang::ento::ExplodedNodeSet& DstSet,
    const clang::ento::NodeBuilderContext& Ctx,
    clang::ento::NodeBuilder* Enclosing = nullptr)

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

Parameters

clang::ento::ExplodedNodeSet& SrcSet
clang::ento::ExplodedNodeSet& DstSet
const clang::ento::NodeBuilderContext& Ctx
clang::ento::NodeBuilder* Enclosing = nullptr

clang::ento::ExplodedNode* generateNode(
    const clang::Stmt* S,
    clang::ento::ExplodedNode* Pred,
    clang::ento::ProgramStateRef St,
    const clang::ProgramPointTag* tag = nullptr,
    ProgramPoint::Kind K =
        ProgramPoint::PostStmtKind)

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

Parameters

const clang::Stmt* S
clang::ento::ExplodedNode* Pred
clang::ento::ProgramStateRef St
const clang::ProgramPointTag* tag = nullptr
ProgramPoint::Kind K = ProgramPoint::PostStmtKind

clang::ento::ExplodedNode* generateSink(
    const clang::Stmt* S,
    clang::ento::ExplodedNode* Pred,
    clang::ento::ProgramStateRef St,
    const clang::ProgramPointTag* tag = nullptr,
    ProgramPoint::Kind K =
        ProgramPoint::PostStmtKind)

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

Parameters

const clang::Stmt* S
clang::ento::ExplodedNode* Pred
clang::ento::ProgramStateRef St
const clang::ProgramPointTag* tag = nullptr
ProgramPoint::Kind K = ProgramPoint::PostStmtKind

~StmtNodeBuilder()

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