clang API Documentation
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. More...
#include <CoreEngine.h>
Public Member Functions | |
StmtNodeBuilder (ExplodedNode *SrcNode, ExplodedNodeSet &DstSet, const NodeBuilderContext &Ctx, NodeBuilder *Enclosing=nullptr) | |
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. | |
StmtNodeBuilder (ExplodedNodeSet &SrcSet, ExplodedNodeSet &DstSet, const NodeBuilderContext &Ctx, NodeBuilder *Enclosing=nullptr) | |
virtual | ~StmtNodeBuilder () |
ExplodedNode * | generateNode (const Stmt *S, ExplodedNode *Pred, ProgramStateRef St, const ProgramPointTag *tag=nullptr, ProgramPoint::Kind K=ProgramPoint::PostStmtKind) |
ExplodedNode * | generateSink (const Stmt *S, ExplodedNode *Pred, ProgramStateRef St, const ProgramPointTag *tag=nullptr, ProgramPoint::Kind K=ProgramPoint::PostStmtKind) |
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.
Definition at line 345 of file CoreEngine.h.
clang::ento::StmtNodeBuilder::StmtNodeBuilder | ( | ExplodedNode * | SrcNode, |
ExplodedNodeSet & | DstSet, | ||
const NodeBuilderContext & | Ctx, | ||
NodeBuilder * | Enclosing = nullptr |
||
) | [inline] |
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.
Definition at line 352 of file CoreEngine.h.
References clang::ento::NodeBuilder::takeNodes().
clang::ento::StmtNodeBuilder::StmtNodeBuilder | ( | ExplodedNodeSet & | SrcSet, |
ExplodedNodeSet & | DstSet, | ||
const NodeBuilderContext & | Ctx, | ||
NodeBuilder * | Enclosing = nullptr |
||
) | [inline] |
Definition at line 360 of file CoreEngine.h.
References clang::ento::ExplodedNodeSet::begin(), clang::ento::ExplodedNodeSet::end(), and clang::ento::NodeBuilder::takeNodes().
StmtNodeBuilder::~StmtNodeBuilder | ( | ) | [virtual] |
Definition at line 646 of file CoreEngine.cpp.
ExplodedNode* clang::ento::StmtNodeBuilder::generateNode | ( | const Stmt * | S, |
ExplodedNode * | Pred, | ||
ProgramStateRef | St, | ||
const ProgramPointTag * | tag = nullptr , |
||
ProgramPoint::Kind | K = ProgramPoint::PostStmtKind |
||
) | [inline] |
Definition at line 375 of file CoreEngine.h.
References clang::ento::ExplodedNode::getLocationContext(), and clang::ProgramPoint::getProgramPoint().
Referenced by clang::ento::ExprEngine::CreateCXXTemporaryObject(), clang::ento::ExprEngine::evalBind(), clang::ento::ExprEngine::evalEagerlyAssumeBinOpBifurcation(), clang::ento::ExprEngine::ProcessTemporaryDtor(), clang::ento::ExprEngine::removeDead(), clang::ento::ExprEngine::Visit(), clang::ento::ExprEngine::VisitBinaryOperator(), clang::ento::ExprEngine::VisitBlockExpr(), clang::ento::ExprEngine::VisitCast(), clang::ento::ExprEngine::VisitCommonDeclRefExpr(), clang::ento::ExprEngine::VisitCompoundLiteralExpr(), clang::ento::ExprEngine::VisitCXXBindTemporaryExpr(), clang::ento::ExprEngine::VisitCXXCatchStmt(), clang::ento::ExprEngine::VisitCXXConstructExpr(), clang::ento::ExprEngine::VisitCXXDeleteExpr(), clang::ento::ExprEngine::VisitCXXNewExpr(), clang::ento::ExprEngine::VisitCXXThisExpr(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitGCCAsmStmt(), clang::ento::ExprEngine::VisitGuardedExpr(), clang::ento::ExprEngine::VisitIncrementDecrementOperator(), clang::ento::ExprEngine::VisitInitListExpr(), clang::ento::ExprEngine::VisitLvalArraySubscriptExpr(), clang::ento::ExprEngine::VisitLvalObjCIvarRefExpr(), clang::ento::ExprEngine::VisitMemberExpr(), clang::ento::ExprEngine::VisitMSAsmStmt(), clang::ento::ExprEngine::VisitObjCForCollectionStmt(), clang::ento::ExprEngine::VisitObjCMessage(), clang::ento::ExprEngine::VisitOffsetOfExpr(), clang::ento::ExprEngine::VisitReturnStmt(), clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr(), and clang::ento::ExprEngine::VisitUnaryOperator().
ExplodedNode* clang::ento::StmtNodeBuilder::generateSink | ( | const Stmt * | S, |
ExplodedNode * | Pred, | ||
ProgramStateRef | St, | ||
const ProgramPointTag * | tag = nullptr , |
||
ProgramPoint::Kind | K = ProgramPoint::PostStmtKind |
||
) | [inline] |
Definition at line 385 of file CoreEngine.h.
References clang::ento::ExplodedNode::getLocationContext(), and clang::ProgramPoint::getProgramPoint().
Referenced by clang::ento::ExprEngine::Visit(), clang::ento::ExprEngine::VisitCast(), and clang::ento::ExprEngine::VisitObjCMessage().