clang 20.0.0git
|
This builder class is useful for generating nodes that resulted from visiting a statement. More...
#include "clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h"
Additional Inherited Members | |
Public Types inherited from clang::ento::NodeBuilder | |
using | iterator = ExplodedNodeSet::iterator |
Protected Member Functions inherited from clang::ento::NodeBuilder | |
virtual bool | checkResults () |
Checks if the results are ready. | |
bool | hasNoSinksInFrontier () |
virtual void | finalizeResults () |
Allow subclasses to finalize results before result_begin() is executed. | |
ExplodedNode * | generateNodeImpl (const ProgramPoint &PP, ProgramStateRef State, ExplodedNode *Pred, bool MarkAsSink=false) |
Protected Attributes inherited from clang::ento::NodeBuilder | |
const NodeBuilderContext & | C |
bool | Finalized |
Specifies if the builder results have been finalized. | |
bool | HasGeneratedNodes = false |
ExplodedNodeSet & | Frontier |
The frontier set - a set of nodes which need to be propagated after the builder dies. | |
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 376 of file CoreEngine.h.
|
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 383 of file CoreEngine.h.
References clang::ento::NodeBuilder::takeNodes().
|
inline |
Definition at line 391 of file CoreEngine.h.
References clang::ento::NodeBuilder::takeNodes().
|
override |
Definition at line 643 of file CoreEngine.cpp.
References clang::ento::NodeBuilder::addNodes(), and clang::ento::NodeBuilder::Frontier.
|
inline |
Generates a node in the ExplodedGraph.
Definition at line 285 of file CoreEngine.h.
|
inline |
Definition at line 405 of file CoreEngine.h.
References clang::ento::NodeBuilder::generateNode(), clang::ento::ExplodedNode::getLocationContext(), and clang::ProgramPoint::getProgramPoint().
Referenced by clang::ento::ExprEngine::CreateCXXTemporaryObject(), clang::ento::ExprEngine::evalEagerlyAssumeBifurcation(), clang::ento::ExprEngine::evalLoad(), clang::ento::ExprEngine::handleLValueBitCast(), clang::ento::ExprEngine::handleUOExtension(), populateObjCForDestinationSet(), clang::ento::ExprEngine::ProcessTemporaryDtor(), clang::ento::ExprEngine::removeDead(), clang::ento::ExprEngine::Visit(), clang::ento::ExprEngine::VisitArrayInitLoopExpr(), clang::ento::ExprEngine::VisitArraySubscriptExpr(), clang::ento::ExprEngine::VisitAtomicExpr(), 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::VisitCXXNewAllocatorCall(), clang::ento::ExprEngine::VisitCXXNewExpr(), clang::ento::ExprEngine::VisitCXXThisExpr(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitGCCAsmStmt(), clang::ento::ExprEngine::VisitGuardedExpr(), clang::ento::ExprEngine::VisitInitListExpr(), clang::ento::ExprEngine::VisitLambdaExpr(), clang::ento::ExprEngine::VisitLogicalExpr(), clang::ento::ExprEngine::VisitLvalObjCIvarRefExpr(), clang::ento::ExprEngine::VisitMemberExpr(), clang::ento::ExprEngine::VisitMSAsmStmt(), clang::ento::ExprEngine::VisitObjCMessage(), clang::ento::ExprEngine::VisitOffsetOfExpr(), clang::ento::ExprEngine::VisitReturnStmt(), clang::ento::ExprEngine::VisitUnaryExprOrTypeTraitExpr(), and clang::ento::ExprEngine::VisitUnaryOperator().
|
inline |
Generates a sink in the ExplodedGraph.
When a node is marked as sink, the exploration from the node is stopped - the node becomes the last node on the path and certain kinds of bugs are suppressed.
Definition at line 298 of file CoreEngine.h.
|
inline |
Definition at line 415 of file CoreEngine.h.
References clang::ento::NodeBuilder::generateSink(), clang::ento::ExplodedNode::getLocationContext(), and clang::ProgramPoint::getProgramPoint().
Referenced by clang::ento::ExprEngine::Visit(), clang::ento::ExprEngine::VisitCast(), and clang::ento::ExprEngine::VisitObjCMessage().