/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ |
H A D | ExprEngine.h | 85 class ExplodedNode; variable 242 std::string DumpGraph(ArrayRef<const ExplodedNode *> Nodes, 250 void ViewGraph(ArrayRef<const ExplodedNode *> Nodes); 284 void removeDead(ExplodedNode *Node, ExplodedNodeSet &Out, 295 void processCFGElement(const CFGElement E, ExplodedNode *Pred, 298 void ProcessStmt(const Stmt *S, ExplodedNode *Pred); 300 void ProcessLoopExit(const Stmt* S, ExplodedNode *Pred); 302 void ProcessInitializer(const CFGInitializer I, ExplodedNode *Pred); 304 void ProcessImplicitDtor(const CFGImplicitDtor D, ExplodedNode *Pred); 306 void ProcessNewAllocator(const CXXNewExpr *NE, ExplodedNode *Pre [all...] |
H A D | ExplodedGraph.h | 66 class ExplodedNode : public llvm::FoldingSetNode { 96 ExplodedNode * const *begin() const; 98 ExplodedNode * const *end() const; 107 void addNode(ExplodedNode *N, ExplodedGraph &G); 114 void replaceNode(ExplodedNode *node); 138 explicit ExplodedNode(const ProgramPoint &loc, ProgramStateRef state, in ExplodedNode() function 196 void addPredecessor(ExplodedNode *V, ExplodedGraph &G); 209 ExplodedNode *getFirstPred() { in getFirstPred() 213 const ExplodedNode *getFirstPred() const { in getFirstPred() 214 return const_cast<ExplodedNode*>(this)->getFirstPred(); in getFirstPred() [all …]
|
H A D | CoreEngine.h | 61 std::vector<std::pair<BlockEdge, const ExplodedNode *>>; 64 std::vector<std::pair<const CFGBlock *, const ExplodedNode *>>; 104 ExplodedNode *Pred); 106 void HandleBlockEdge(const BlockEdge &E, ExplodedNode *Pred); 107 void HandleBlockEntrance(const BlockEntrance &E, ExplodedNode *Pred); 108 void HandleBlockExit(const CFGBlock *B, ExplodedNode *Pred); 110 void HandleCallEnter(const CallEnter &CE, ExplodedNode *Pred); 112 void HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, ExplodedNode *Pred); 115 ExplodedNode *Pred); 117 const CFGBlock *B, ExplodedNode *Pre [all...] |
H A D | CheckerContext.h | 27 ExplodedNode *Pred; 43 ExplodedNode *pred, 71 ExplodedNode *getPredecessor() { return Pred; } in getPredecessor() 142 static const MemRegion *getLocationRegionIfPostStore(const ExplodedNode *N) { in getLocationRegionIfPostStore() 170 ExplodedNode *addTransition(ProgramStateRef State = nullptr, 182 ExplodedNode *addTransition(ProgramStateRef State, ExplodedNode *Pred, 190 ExplodedNode *generateSink(ProgramStateRef State, ExplodedNode *Pred, 210 ExplodedNode *generateErrorNod [all...] |
H A D | WorkList.h | 28 ExplodedNode *node; 34 WorkListUnit(ExplodedNode *N, BlockCounter C, in WorkListUnit() 41 explicit WorkListUnit(ExplodedNode *N, BlockCounter C) in WorkListUnit() 48 ExplodedNode *getNode() const { return node; } in getNode() 68 void enqueue(ExplodedNode *N, const CFGBlock *B, unsigned idx) { in enqueue() 72 void enqueue(ExplodedNode *N) { in enqueue()
|
/llvm-project/clang/lib/StaticAnalyzer/Core/ |
H A D | ExplodedGraph.cpp | 9 // This file defines the template classes ExplodedNode and ExplodedGraph, 56 bool ExplodedGraph::shouldCollect(const ExplodedNode *node) { in shouldCollect() 91 const ExplodedNode *pred = *(node->pred_begin()); in shouldCollect() 95 const ExplodedNode *succ = *(node->succ_begin()); in shouldCollect() 153 void ExplodedGraph::collectNode(ExplodedNode *node) { in collectNode() 159 ExplodedNode *pred = *(node->pred_begin()); in collectNode() 160 ExplodedNode *succ = *(node->succ_begin()); in collectNode() 166 node->~ExplodedNode(); in collectNode() 188 // ExplodedNode. 192 // it can be either a pointer to a single ExplodedNode, o [all...] |
H A D | CoreEngine.cpp | 118 ExplodedNode *Node = G.getNode(StartLoc, InitState, false, &IsNew); in ExecuteWorkList() 157 ExplodedNode *Node = WU.getNode(); in ExecuteWorkList() 182 void CoreEngine::dispatchWorkItem(ExplodedNode* Pred, ProgramPoint Loc, in dispatchWorkItem() 209 ExplodedNode *PNode = Pred->getFirstPred(); in dispatchWorkItem() 225 void CoreEngine::HandleBlockEdge(const BlockEdge &L, ExplodedNode *Pred) { in HandleBlockEdge() 295 ExplodedNode *Pred) { in HandleBlockEntrance() 312 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) { in HandleBlockExit() 436 void CoreEngine::HandleCallEnter(const CallEnter &CE, ExplodedNode *Pred) { in HandleCallEnter() 442 const CFGBlock * B, ExplodedNode *Pred) { in HandleBranch() 455 ExplodedNode *Pre in HandleCleanupTemporaryBranch() [all...] |
H A D | BugReporterVisitors.cpp | 87 static const Expr *peelOffOuterExpr(const Expr *Ex, const ExplodedNode *N); 181 getLocationRegionIfReference(const Expr *E, const ExplodedNode *N, in getLocationRegionIfReference() 220 static bool hasVisibleUpdate(const ExplodedNode *LeftNode, SVal LeftVal, in hasVisibleUpdate() 221 const ExplodedNode *RightNode, SVal RightVal) { in hasVisibleUpdate() 239 const ExplodedNode *N) { in getSValForVar() 263 getConcreteIntegerValue(const Expr *CondVarExpr, const ExplodedNode *N) { in getConcreteIntegerValue() 272 const ExplodedNode *N, in isVarAnInterestingCondition() 288 static bool isInterestingExpr(const Expr *E, const ExplodedNode *N, in isInterestingExpr() 322 const ExplodedNode *N, in wasRegionOfInterestModifiedAt() 354 const ExplodedNode *, in getEndPath() argument 360 finalizeVisitor(BugReporterContext &,const ExplodedNode *,PathSensitiveBugReport &) finalizeVisitor() argument 1213 finalizeVisitor(BugReporterContext &,const ExplodedNode *,PathSensitiveBugReport & BR) finalizeVisitor() argument [all...] |
H A D | ExprEngineCXX.cpp | 31 ExplodedNode *Pred, in CreateCXXTemporaryObject() 44 void ExprEngine::performTrivialCopy(NodeBuilder &Bldr, ExplodedNode *Pred, in performTrivialCopy() 82 for (ExplodedNode *N : Dst) { in performTrivialCopy() 530 ExplodedNode *Pred, in bindRequiredArrayElementToEnvironment() 695 for (ExplodedNode *N : DstPreVisit) { in handleConstructor() 731 for (ExplodedNode *N : DstPreCall) in handleConstructor() 735 for (ExplodedNode *N : DstPreCall) in handleConstructor() 767 for (ExplodedNode *N : DstEvaluated) { in handleConstructor() 779 for (ExplodedNode *I : DstEvaluatedPostProcessed) in handleConstructor() 792 ExplodedNode *Pre in handleConstructor() [all...] |
H A D | ExprEngineCallAndReturn.cpp | 45 ExplodedNode *Pred) { in processCallEnter() 66 ExplodedNode *Node = G.getNode(Loc, state, false, &isNew); in processCallEnter() 78 const CFGBlock*> getLastStmt(const ExplodedNode *Node) { in getLastStmt() 166 ExplodedNode *Pred, in removeDeadOnEndOfFunction() 254 void ExprEngine::processCallExit(ExplodedNode *CEBNode) { in processCallExit() 363 ExplodedNode *BindedRetNode = G.getNode(Loc, state, false, &isNew); in processCallExit() 382 for (ExplodedNode *N : CleanedNodes) { in processCallExit() 389 ExplodedNode *CEENode = G.getNode(Loc, CEEState, false, &isNew); in processCallExit() 409 for (ExplodedNode *I : DstPostPostCallCallback) { in processCallExit() 508 NodeBuilder &Bldr, ExplodedNode *Pre in REGISTER_MAP_WITH_PROGRAMSTATE() [all...] |
H A D | ExprEngineC.cpp | 41 ExplodedNode *Pred, in VisitBinaryOperator() 136 for (ExplodedNode *N : Tmp) { in VisitBinaryOperator() 193 void ExprEngine::VisitBlockExpr(const BlockExpr *BE, ExplodedNode *Pred, in VisitBlockExpr() 257 ExplodedNode* Pred) { in handleLValueBitCast() 283 ExplodedNode *Pred, ExplodedNodeSet &Dst) { in VisitCast() 290 for (ExplodedNode *subExprNode : dstPreStmt) { in VisitCast() 306 for (ExplodedNode *Pred : dstPreStmt) { in VisitCast() 541 ExplodedNode *Pred, in VisitCompoundLiteralExpr() 565 void ExprEngine::VisitDeclStmt(const DeclStmt *DS, ExplodedNode *Pred, in VisitDeclStmt() 596 ExplodedNode *N = *I; in VisitDeclStmt() [all …]
|
H A D | ExprEngineObjC.cpp | 22 ExplodedNode *Pred, in VisitLvalObjCIvarRefExpr() 39 ExplodedNode *Pred, in VisitObjCAtSynchronizedStmt() 52 for (ExplodedNode *Pred : dstLocation) { in populateObjCForDestinationSet() 84 ExplodedNode *Pred, in VisitObjCForCollectionStmt() 148 ExplodedNode *Pred, in VisitObjCMessage() 256 ExplodedNode *Pred = *DI; in VisitObjCMessage()
|
/llvm-project/clang/include/clang/StaticAnalyzer/Core/BugReporter/ |
H A D | BugReporterVisitors.h | 43 class ExplodedNode; variable 72 virtual PathDiagnosticPieceRef VisitNode(const ExplodedNode *Succ, 79 const ExplodedNode *EndPathNode, 88 const ExplodedNode *N, 95 getDefaultEndPath(const BugReporterContext &BRC, const ExplodedNode *N, 149 const ExplodedNode *StoreSite; 219 virtual Result track(const Expr *E, const ExplodedNode *N, 313 virtual Tracker::Result handle(const Expr *E, const ExplodedNode *Original, 314 const ExplodedNode *ExprNode, 370 bool trackExpressionValue(const ExplodedNode * 539 VisitNode(const ExplodedNode *,BugReporterContext &,PathSensitiveBugReport &) VisitNode() argument [all...] |
H A D | BugReporter.h | 60 class ExplodedNode; variable 81 /// Construct the Diagnostic message for the given ExplodedNode. 82 virtual std::string getMessage(const ExplodedNode *N) = 0; 102 std::string getMessage(const ExplodedNode *N) override; 298 const ExplodedNode *ErrorNode = nullptr; 351 llvm::SmallSet<const ExplodedNode *, 4> TrackedConditions; 370 const ExplodedNode *errorNode) in PathSensitiveBugReport() 374 const ExplodedNode *errorNode) in PathSensitiveBugReport() 387 const ExplodedNode *errorNode, in PathSensitiveBugReport() 394 const ExplodedNode *errorNod [all...] |
/llvm-project/clang/lib/StaticAnalyzer/Checkers/ |
H A D | NoOwnershipChangeVisitor.h | 23 getFunctionName(const ExplodedNode *CallEnterN); 35 bool wasModifiedInFunction(const ExplodedNode *CallEnterN, 36 const ExplodedNode *CallExitEndN) final; 38 virtual PathDiagnosticPieceRef emitNote(const ExplodedNode *N) = 0; 42 const ExplodedNode *N) final { in maybeEmitNoteForObjCSelf() 49 const ExplodedNode *N) final { in maybeEmitNoteForCXXThis() 57 const ExplodedNode *N) final; 63 OwnerSet getOwnersAtNode(const ExplodedNode *N);
|
H A D | ValistChecker.cpp | 59 const ExplodedNode *getStartCallSite(const ExplodedNode *N, 65 StringRef Msg2, CheckerContext &C, ExplodedNode *N, 82 const ExplodedNode *EndPathNode, in getEndPath() 92 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N, 213 if (ExplodedNode *N = C.addTransition(State)) in checkDeadSymbols() 222 const ExplodedNode * 223 ValistChecker::getStartCallSite(const ExplodedNode *N, in getStartCallSite() 226 const ExplodedNode *StartCallNode = N; in getStartCallSite() 252 if (ExplodedNode *N = C.generateErrorNode()) { in reportUninitializedAccess() 266 CheckerContext &C, ExplodedNode *N, in reportLeakedVALists() [all …]
|
H A D | NoOwnershipChangeVisitor.cpp | 52 OwnerSet NoOwnershipChangeVisitor::getOwnersAtNode(const ExplodedNode *N) { in getOwnersAtNode() 63 NoOwnershipChangeVisitor::getFunctionName(const ExplodedNode *CallEnterN) { in getFunctionName() 72 const ExplodedNode *CallEnterN, const ExplodedNode *CallExitEndN) { in wasModifiedInFunction() 96 PathSensitiveBugReport &R, const CallEvent &Call, const ExplodedNode *N) { in wasModifiedInFunction()
|
H A D | MacOSKeychainAPIChecker.cpp | 110 const ExplodedNode *getAllocationNode(const ExplodedNode *N, SymbolRef Sym, 115 ExplodedNode *N, 142 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N, 226 ExplodedNode *N = C.generateNonFatalErrorNode(State); in generateDeallocatorMismatchReport() 270 ExplodedNode *N = C.generateNonFatalErrorNode(State); in checkPreStmt() 330 ExplodedNode *N = C.generateNonFatalErrorNode(State); in checkPreStmt() 440 const ExplodedNode * 441 MacOSKeychainAPIChecker::getAllocationNode(const ExplodedNode *N, in getAllocationNode() 447 const ExplodedNode *AllocNode = N; in getAllocationNode() 466 const AllocationPair &AP, ExplodedNode *N, CheckerContext &C) const { in generateAllocatedDataNotReleasedReport() [all …]
|
H A D | FuchsiaHandleChecker.cpp | 210 ExplodedNode *reportLeaks(ArrayRef<SymbolRef> LeakedHandles, 211 CheckerContext &C, ExplodedNode *Pred) const; 222 void reportBug(SymbolRef Sym, ExplodedNode *ErrorNode, CheckerContext &C, 233 static const ExplodedNode *getAcquireSite(const ExplodedNode *N, SymbolRef Sym, in REGISTER_MAP_WITH_PROGRAMSTATE() 241 const ExplodedNode *Pred = N; in REGISTER_MAP_WITH_PROGRAMSTATE() 522 ExplodedNode *N = C.getPredecessor(); in checkDeadSymbols() 610 ExplodedNode * 612 CheckerContext &C, ExplodedNode *Pred) const { in reportLeaks() 613 ExplodedNode *ErrNode = C.generateNonFatalErrorNode(C.getState(), Pred); in reportLeaks() 624 ExplodedNode *ErrNode = C.generateErrorNode(C.getState()); in reportDoubleRelease() [all …]
|
H A D | NonNullParamChecker.cpp | 44 genReportNullAttrNonNull(const ExplodedNode *ErrorN, const Expr *ArgE, 47 genReportReferenceToNullPointer(const ExplodedNode *ErrorN, 182 if (ExplodedNode *errorNode = C.generateErrorNode(stateNull)) { in checkPreCall() 202 if (ExplodedNode *N = C.generateSink(stateNull, C.getPredecessor())) { in checkPreCall() 280 NonNullParamChecker::genReportNullAttrNonNull(const ExplodedNode *ErrorNode, in genReportNullAttrNonNull() 299 const ExplodedNode *ErrorNode, const Expr *ArgE) const { in genReportReferenceToNullPointer()
|
/llvm-project/clang/unittests/StaticAnalyzer/ |
H A D | NoStateChangeFuncVisitorTest.cpp | 56 const ExplodedNode *N) override { in maybeEmitNoteForObjCSelf() 63 const ExplodedNode *N) override { in maybeEmitNoteForCXXThis() 69 const ExplodedNode *N) override { in maybeEmitNoteForParameters() 102 const ExplodedNode *N = C.generateErrorNode(); in checkPreCall() 130 wasModifiedInFunction(const ExplodedNode *CallEnterN, in wasModifiedInFunction() 131 const ExplodedNode *CallExitEndN) override { in wasModifiedInFunction() 224 wasModifiedBeforeCallExit(const ExplodedNode *CurrN, in wasModifiedBeforeCallExit() 225 const ExplodedNode *CallExitBeginN) override { in wasModifiedBeforeCallExit()
|
/llvm-project/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/ |
H A D | RetainCountDiagnostics.cpp | 325 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N, 330 const ExplodedNode *N, 340 const ExplodedNode *N, 353 static const ExplodedNode *getCalleeNode(const ExplodedNode *Pred) { in getCalleeNode() 361 const ExplodedNode *N = Pred; in getCalleeNode() 373 annotateConsumedSummaryMismatch(const ExplodedNode *N, in annotateConsumedSummaryMismatch() 378 const ExplodedNode *CN = getCalleeNode(N); in annotateConsumedSummaryMismatch() 423 annotateStartParameter(const ExplodedNode *N, SymbolRef Sym, in annotateStartParameter() 453 RefCountReportVisitor::VisitNode(const ExplodedNode * [all...] |
H A D | RetainCountDiagnostics.h | 56 ExplodedNode *n, SymbolRef sym, 60 ExplodedNode *n, SymbolRef sym, 84 void findBindingToReport(CheckerContext &Ctx, ExplodedNode *Node); 87 RefLeakReport(const RefCountBug &D, const LangOptions &LOpts, ExplodedNode *n,
|
/llvm-project/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/ |
H A D | MPIBugReporter.h | 44 const ExplodedNode *const ExplNode, 55 const ExplodedNode *const ExplNode, 66 const ExplodedNode *const ExplNode, 89 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
|
H A D | MPIBugReporter.cpp | 26 const ExplodedNode *const ExplNode, in reportDoubleNonblocking() 51 const ExplodedNode *const ExplNode, in reportMissingWait() 71 const ExplodedNode *const ExplNode, in reportUnmatchedWait() 88 MPIBugReporter::RequestNodeVisitor::VisitNode(const ExplodedNode *N, in VisitNode()
|