clang API Documentation

Public Member Functions
clang::ento::StmtNodeBuilder Class Reference

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

#include <CoreEngine.h>

Inheritance diagram for clang::ento::StmtNodeBuilder:
Inheritance graph
[legend]
Collaboration diagram for clang::ento::StmtNodeBuilder:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 StmtNodeBuilder (ExplodedNode *SrcNode, ExplodedNodeSet &DstSet, const NodeBuilderContext &Ctx, NodeBuilder *Enclosing=0)
 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=0)
virtual ~StmtNodeBuilder ()
ExplodedNodegenerateNode (const Stmt *S, ExplodedNode *Pred, ProgramStateRef St, bool MarkAsSink=false, const ProgramPointTag *tag=0, ProgramPoint::Kind K=ProgramPoint::PostStmtKind)
ExplodedNodegenerateNode (const ProgramPoint &PP, ExplodedNode *Pred, ProgramStateRef State, bool MarkAsSink=false)

Detailed Description

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

Definition at line 346 of file CoreEngine.h.


Constructor & Destructor Documentation

clang::ento::StmtNodeBuilder::StmtNodeBuilder ( ExplodedNode SrcNode,
ExplodedNodeSet DstSet,
const NodeBuilderContext Ctx,
NodeBuilder Enclosing = 0 
) [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 353 of file CoreEngine.h.

References clang::ento::NodeBuilder::takeNodes().

clang::ento::StmtNodeBuilder::StmtNodeBuilder ( ExplodedNodeSet SrcSet,
ExplodedNodeSet DstSet,
const NodeBuilderContext Ctx,
NodeBuilder Enclosing = 0 
) [inline]
StmtNodeBuilder::~StmtNodeBuilder ( ) [virtual]

Definition at line 605 of file CoreEngine.cpp.


Member Function Documentation

ExplodedNode* clang::ento::StmtNodeBuilder::generateNode ( const Stmt S,
ExplodedNode Pred,
ProgramStateRef  St,
bool  MarkAsSink = false,
const ProgramPointTag tag = 0,
ProgramPoint::Kind  K = ProgramPoint::PostStmtKind 
) [inline]

Definition at line 371 of file CoreEngine.h.

References clang::ento::NodeBuilder::generateNodeImpl(), clang::ento::ExplodedNode::getLocationContext(), and clang::ProgramPoint::getProgramPoint().

Referenced by clang::ento::ExprEngine::CreateCXXTemporaryObject(), clang::ento::ExprEngine::evalBind(), clang::ento::ExprEngine::evalEagerlyAssume(), clang::ento::ExprEngine::evalObjCMessage(), clang::ento::ExprEngine::ProcessInitializer(), clang::ento::ExprEngine::removeDead(), clang::ento::ExprEngine::VisitAsmStmt(), clang::ento::ExprEngine::VisitBlockExpr(), clang::ento::ExprEngine::VisitCallExpr(), clang::ento::ExprEngine::VisitCast(), clang::ento::ExprEngine::VisitCommonDeclRefExpr(), clang::ento::ExprEngine::VisitCompoundLiteralExpr(), clang::ento::ExprEngine::VisitCXXCatchStmt(), clang::ento::ExprEngine::VisitCXXConstructExpr(), clang::ento::ExprEngine::VisitCXXDeleteExpr(), clang::ento::ExprEngine::VisitCXXDestructor(), clang::ento::ExprEngine::VisitCXXNewExpr(), clang::ento::ExprEngine::VisitCXXThisExpr(), clang::ento::ExprEngine::VisitDeclStmt(), 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::VisitObjCForCollectionStmt(), clang::ento::ExprEngine::VisitOffsetOfExpr(), and clang::ento::ExprEngine::VisitReturnStmt().

ExplodedNode* clang::ento::StmtNodeBuilder::generateNode ( const ProgramPoint PP,
ExplodedNode Pred,
ProgramStateRef  State,
bool  MarkAsSink = false 
) [inline]

Definition at line 382 of file CoreEngine.h.

References clang::ento::NodeBuilder::generateNodeImpl().


The documentation for this class was generated from the following files: