|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Declarations
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h 59 class ExplodedNode;
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h 38 class ExplodedNode;
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h 26 class ExplodedNode;
tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h 45 class ExplodedNode;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h 35 class ExplodedNode;
References
include/llvm/ADT/DenseMapInfo.h 39 static inline T* getEmptyKey() {
41 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
45 static inline T* getTombstoneKey() {
47 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
51 static unsigned getHashValue(const T *PtrVal) {
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/ADT/FoldingSet.h 221 static void Profile(const T &X, FoldingSetNodeID &ID) {
224 static void Profile(T &X, FoldingSetNodeID &ID) {
232 static inline bool Equals(T &X, const FoldingSetNodeID &ID, unsigned IDHash,
240 static inline unsigned ComputeHash(T &X, FoldingSetNodeID &TempID);
250 : public DefaultFoldingSetTrait<T> {};
369 FoldingSetTrait<T>::Profile(X, TempID);
375 FoldingSetTrait<T>::Profile(X, TempID);
410 using iterator = FoldingSetIterator<T>;
415 using const_iterator = FoldingSetIterator<const T>;
420 using bucket_iterator = FoldingSetBucketIterator<T>;
432 bool RemoveNode(T *N) { return FoldingSetBase::RemoveNode(N); }
437 T *GetOrInsertNode(T *N) {
437 T *GetOrInsertNode(T *N) {
444 T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) {
451 void InsertNode(T *N, void *InsertPos) {
457 void InsertNode(T *N) {
473 template <class T> class FoldingSet final : public FoldingSetImpl<T> {
474 using Super = FoldingSetImpl<T>;
480 T *TN = static_cast<T *>(N);
481 FoldingSetTrait<T>::Profile(*TN, ID);
488 T *TN = static_cast<T *>(N);
489 return FoldingSetTrait<T>::Equals(*TN, ID, IDHash, TempID);
495 T *TN = static_cast<T *>(N);
496 return FoldingSetTrait<T>::ComputeHash(*TN, TempID);
640 T &operator*() const {
644 T *operator->() const {
include/llvm/Support/Allocator.h 81 template <typename T> T *Allocate(size_t Num = 1) {
82 return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T)));
82 return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T)));
include/llvm/Support/PointerLikeTypeTraits.h 56 static inline void *getAsVoidPointer(T *P) { return P; }
57 static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
59 enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
91 typedef PointerLikeTypeTraits<T *> NonConst;
93 static inline const void *getAsVoidPointer(const T *P) {
96 static inline const T *getFromVoidPointer(const void *P) {
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h 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)
376 const ExplodedNode *errorNode)
390 const ExplodedNode *errorNode,
403 const ExplodedNode *getErrorNode() const { return ErrorNode; }
507 bool addTrackedCondition(const ExplodedNode *Cond) {
524 const ExplodedNode *N) const {
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h 61 virtual PathDiagnosticPieceRef VisitNode(const ExplodedNode *Succ,
68 const ExplodedNode *EndPathNode,
77 const ExplodedNode *N,
84 getDefaultEndPath(const BugReporterContext &BRC, const ExplodedNode *N,
114 bool trackExpressionValue(const ExplodedNode *N, const Expr *E,
159 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
185 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
191 bool isUnderconstrained(const ExplodedNode *N) const;
203 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
209 static const Expr *getNilReceiver(const Stmt *S, const ExplodedNode *N);
230 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
234 PathDiagnosticPieceRef VisitNodeImpl(const ExplodedNode *N,
239 VisitTerminator(const Stmt *Term, const ExplodedNode *N,
246 const ExplodedNode *N, bool TookTrue);
251 const ExplodedNode *N, bool TookTrue,
257 const ExplodedNode *N, bool TookTrue, bool IsAssuming);
262 const ExplodedNode *N, bool TookTrue,
268 const ExplodedNode *N, bool TookTrue);
280 const ExplodedNode *N, bool TookTrue, bool IsAssuming);
287 const ExplodedNode *N,
309 PathDiagnosticPieceRef VisitNode(const ExplodedNode *, BugReporterContext &,
314 void finalizeVisitor(BugReporterContext &BRC, const ExplodedNode *N,
336 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
357 SuppressInlineDefensiveChecksVisitor(DefinedSVal Val, const ExplodedNode *N);
365 PathDiagnosticPieceRef VisitNode(const ExplodedNode *Succ,
383 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
387 void finalizeVisitor(BugReporterContext &BRC, const ExplodedNode *EndPathNode,
397 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
tools/clang/include/clang/StaticAnalyzer/Core/Checker.h 556 ExplodedNode *SinkNode;
tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h 309 ExplodedNode *Pred,
315 ExplodedNode *Pred,
321 ExplodedNodeSet &Dst, ExplodedNode *Pred,
327 ExplodedNode *Pred,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h 26 ExplodedNode *Pred;
42 ExplodedNode *pred,
70 ExplodedNode *getPredecessor() { return Pred; }
136 static const MemRegion *getLocationRegionIfPostStore(const ExplodedNode *N) {
164 ExplodedNode *addTransition(ProgramStateRef State = nullptr,
176 ExplodedNode *addTransition(ProgramStateRef State,
177 ExplodedNode *Pred,
185 ExplodedNode *generateSink(ProgramStateRef State, ExplodedNode *Pred,
185 ExplodedNode *generateSink(ProgramStateRef State, ExplodedNode *Pred,
197 ExplodedNode *generateErrorNode(ProgramStateRef State = nullptr,
210 ExplodedNode *
324 ExplodedNode *addTransitionImpl(ProgramStateRef State,
326 ExplodedNode *P = nullptr,
348 ExplodedNode *node;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h 66 std::vector<std::pair<BlockEdge, const ExplodedNode *>>;
69 std::vector<std::pair<const CFGBlock *, const ExplodedNode *>>;
105 ExplodedNode *Pred);
107 void HandleBlockEdge(const BlockEdge &E, ExplodedNode *Pred);
108 void HandleBlockEntrance(const BlockEntrance &E, ExplodedNode *Pred);
109 void HandleBlockExit(const CFGBlock *B, ExplodedNode *Pred);
111 void HandleCallEnter(const CallEnter &CE, ExplodedNode *Pred);
113 void HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, ExplodedNode *Pred);
116 ExplodedNode *Pred);
118 const CFGBlock *B, ExplodedNode *Pred);
122 ExplodedNode *Pred);
124 void HandleVirtualBaseBranch(const CFGBlock *B, ExplodedNode *Pred);
127 ExplodedNode *generateCallExitBeginNode(ExplodedNode *N,
127 ExplodedNode *generateCallExitBeginNode(ExplodedNode *N,
155 void dispatchWorkItem(ExplodedNode* Pred, ProgramPoint Loc,
167 void addAbortedBlock(const ExplodedNode *node, const CFGBlock *block) {
201 void enqueueStmtNode(ExplodedNode *N, const CFGBlock *Block, unsigned Idx);
212 NodeBuilderContext(const CoreEngine &E, const CFGBlock *B, ExplodedNode *N)
267 ExplodedNode *generateNodeImpl(const ProgramPoint &PP,
269 ExplodedNode *Pred,
273 NodeBuilder(ExplodedNode *SrcNode, ExplodedNodeSet &DstSet,
289 ExplodedNode *generateNode(const ProgramPoint &PP,
291 ExplodedNode *Pred) {
300 ExplodedNode *generateSink(const ProgramPoint &PP,
302 ExplodedNode *Pred) {
334 void takeNodes(ExplodedNode *N) { Frontier.erase(N); }
336 void addNodes(ExplodedNode *N) { Frontier.Add(N); }
345 SmallVector<ExplodedNode*, 2> sinksGenerated;
349 NodeBuilderWithSinks(ExplodedNode *Pred, ExplodedNodeSet &DstSet,
353 ExplodedNode *generateNode(ProgramStateRef State,
354 ExplodedNode *Pred,
360 ExplodedNode *generateSink(ProgramStateRef State, ExplodedNode *Pred,
360 ExplodedNode *generateSink(ProgramStateRef State, ExplodedNode *Pred,
363 ExplodedNode *N = NodeBuilder::generateSink(LocalLoc, State, Pred);
369 const SmallVectorImpl<ExplodedNode*> &getSinks() const {
385 StmtNodeBuilder(ExplodedNode *SrcNode, ExplodedNodeSet &DstSet,
407 ExplodedNode *generateNode(const Stmt *S,
408 ExplodedNode *Pred,
417 ExplodedNode *generateSink(const Stmt *S,
418 ExplodedNode *Pred,
440 BranchNodeBuilder(ExplodedNode *SrcNode, ExplodedNodeSet &DstSet,
458 ExplodedNode *generateNode(ProgramStateRef State, bool branch,
459 ExplodedNode *Pred);
482 ExplodedNode *Pred;
485 IndirectGotoNodeBuilder(ExplodedNode *pred, const CFGBlock *src,
512 ExplodedNode *generateNode(const iterator &I,
529 ExplodedNode *Pred;
532 SwitchNodeBuilder(ExplodedNode *pred, const CFGBlock *src,
564 ExplodedNode *generateCaseStmtNode(const iterator &I,
567 ExplodedNode *generateDefaultCaseNode(ProgramStateRef State,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h 95 ExplodedNode * const *begin() const;
97 ExplodedNode * const *end() const;
106 void addNode(ExplodedNode *N, ExplodedGraph &G);
113 void replaceNode(ExplodedNode *node);
197 void addPredecessor(ExplodedNode *V, ExplodedGraph &G);
210 ExplodedNode *getFirstPred() {
214 const ExplodedNode *getFirstPred() const {
218 ExplodedNode *getFirstSucc() {
222 const ExplodedNode *getFirstSucc() const {
227 using succ_iterator = ExplodedNode * const *;
230 using const_succ_iterator = const ExplodedNode * const *;
233 using pred_iterator = ExplodedNode * const *;
236 using const_pred_iterator = const ExplodedNode * const *;
297 void replaceSuccessor(ExplodedNode *node) { Succs.replaceNode(node); }
298 void replacePredecessor(ExplodedNode *node) { Preds.replaceNode(node); }
302 llvm::DenseMap<const ExplodedNode *, const ExplodedNode *>;
302 llvm::DenseMap<const ExplodedNode *, const ExplodedNode *>;
309 using NodeVector = std::vector<ExplodedNode *>;
322 llvm::FoldingSet<ExplodedNode> Nodes;
353 ExplodedNode *getNode(const ProgramPoint &L, ProgramStateRef State,
361 ExplodedNode *createUncachedNode(const ProgramPoint &L,
371 ExplodedNode *addRoot(ExplodedNode *V) {
371 ExplodedNode *addRoot(ExplodedNode *V) {
377 ExplodedNode *addEndOfPath(ExplodedNode *V) {
377 ExplodedNode *addEndOfPath(ExplodedNode *V) {
391 using NodeTy = ExplodedNode;
392 using AllNodesTy = llvm::FoldingSet<ExplodedNode>;
427 using NodeMap = llvm::DenseMap<const ExplodedNode *, ExplodedNode *>;
427 using NodeMap = llvm::DenseMap<const ExplodedNode *, ExplodedNode *>;
459 bool shouldCollect(const ExplodedNode *node);
460 void collectNode(ExplodedNode *node);
464 using ImplTy = llvm::SmallSetVector<ExplodedNode *, 4>;
468 ExplodedNodeSet(ExplodedNode *N) {
475 void Add(ExplodedNode *N) {
484 bool erase(ExplodedNode *N) { return Impl.remove(N); }
512 using NodeRef = clang::ento::ExplodedNode *;
513 using ChildIteratorType = clang::ento::ExplodedNode::succ_iterator;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h 210 void GenerateAutoTransition(ExplodedNode *N);
212 void GenerateCallExitNode(ExplodedNode *N);
223 std::string DumpGraph(ArrayRef<const ExplodedNode *> Nodes,
231 void ViewGraph(ArrayRef<const ExplodedNode *> Nodes);
265 void removeDead(ExplodedNode *Node, ExplodedNodeSet &Out,
272 void processCFGElement(const CFGElement E, ExplodedNode *Pred,
275 void ProcessStmt(const Stmt *S, ExplodedNode *Pred);
277 void ProcessLoopExit(const Stmt* S, ExplodedNode *Pred);
279 void ProcessInitializer(const CFGInitializer I, ExplodedNode *Pred);
281 void ProcessImplicitDtor(const CFGImplicitDtor D, ExplodedNode *Pred);
283 void ProcessNewAllocator(const CXXNewExpr *NE, ExplodedNode *Pred);
286 ExplodedNode *Pred, ExplodedNodeSet &Dst);
288 ExplodedNode *Pred, ExplodedNodeSet &Dst);
290 ExplodedNode *Pred, ExplodedNodeSet &Dst);
292 ExplodedNode *Pred, ExplodedNodeSet &Dst);
294 ExplodedNode *Pred, ExplodedNodeSet &Dst);
299 ExplodedNode *Pred) override;
305 ExplodedNode *Pred,
315 ExplodedNode *Pred, ExplodedNodeSet &Dst,
323 ExplodedNode *Pred,
339 ExplodedNode *Pred, ExplodedNodeSet &Dst,
345 ExplodedNode *Pred,
350 ExplodedNode *Pred,
355 ExplodedNode *Pred) override;
359 void processCallExit(ExplodedNode *Pred) override;
413 void Visit(const Stmt *S, ExplodedNode *Pred, ExplodedNodeSet &Dst);
417 ExplodedNode *Pred,
421 void VisitGCCAsmStmt(const GCCAsmStmt *A, ExplodedNode *Pred,
425 void VisitMSAsmStmt(const MSAsmStmt *A, ExplodedNode *Pred,
429 void VisitBlockExpr(const BlockExpr *BE, ExplodedNode *Pred,
433 void VisitLambdaExpr(const LambdaExpr *LE, ExplodedNode *Pred,
437 void VisitBinaryOperator(const BinaryOperator* B, ExplodedNode *Pred,
442 void VisitCallExpr(const CallExpr *CE, ExplodedNode *Pred,
446 void VisitCast(const CastExpr *CastE, const Expr *Ex, ExplodedNode *Pred,
451 ExplodedNode *Pred, ExplodedNodeSet &Dst);
455 ExplodedNode *Pred, ExplodedNodeSet &Dst);
458 void VisitDeclStmt(const DeclStmt *DS, ExplodedNode *Pred,
463 ExplodedNode *Pred, ExplodedNodeSet &Dst);
465 void VisitInitListExpr(const InitListExpr *E, ExplodedNode *Pred,
469 void VisitLogicalExpr(const BinaryOperator* B, ExplodedNode *Pred,
473 void VisitMemberExpr(const MemberExpr *M, ExplodedNode *Pred,
477 void VisitAtomicExpr(const AtomicExpr *E, ExplodedNode *Pred,
482 ExplodedNode *Pred, ExplodedNodeSet &Dst);
485 void VisitLvalObjCIvarRefExpr(const ObjCIvarRefExpr *DR, ExplodedNode *Pred,
491 ExplodedNode *Pred, ExplodedNodeSet &Dst);
493 void VisitObjCMessage(const ObjCMessageExpr *ME, ExplodedNode *Pred,
497 void VisitReturnStmt(const ReturnStmt *R, ExplodedNode *Pred,
501 void VisitOffsetOfExpr(const OffsetOfExpr *Ex, ExplodedNode *Pred,
506 ExplodedNode *Pred, ExplodedNodeSet &Dst);
509 void VisitUnaryOperator(const UnaryOperator* B, ExplodedNode *Pred,
514 ExplodedNode *Pred,
521 void VisitCXXCatchStmt(const CXXCatchStmt *CS, ExplodedNode *Pred,
524 void VisitCXXThisExpr(const CXXThisExpr *TE, ExplodedNode *Pred,
527 void VisitCXXConstructExpr(const CXXConstructExpr *E, ExplodedNode *Pred,
532 ExplodedNode *Pred, ExplodedNodeSet &Dst,
536 ExplodedNode *Pred,
539 void VisitCXXNewExpr(const CXXNewExpr *CNE, ExplodedNode *Pred,
542 void VisitCXXDeleteExpr(const CXXDeleteExpr *CDE, ExplodedNode *Pred,
547 ExplodedNode *Pred,
571 ExplodedNode *Pred);
577 ExplodedNode *Pred);
611 void evalBind(ExplodedNodeSet &Dst, const Stmt *StoreE, ExplodedNode *Pred,
645 ExplodedNode *Pred,
654 ExplodedNode *Pred, ProgramStateRef St, SVal TargetLV, SVal Val,
671 void evalCall(ExplodedNodeSet &Dst, ExplodedNode *Pred,
675 void defaultEvalCall(NodeBuilder &B, ExplodedNode *Pred,
682 void finishArgumentConstruction(ExplodedNodeSet &Dst, ExplodedNode *Pred,
688 ExplodedNode *Pred,
697 ExplodedNode *Pred,
715 const ExplodedNode *Pred,
740 const ExplodedNode *Pred,
744 ExplodedNode *Pred, ProgramStateRef State);
749 ExplodedNode *Pred, ProgramStateRef State);
755 ExplodedNode *Pred);
757 bool replayWithoutInlining(ExplodedNode *P, const LocationContext *CalleeLC);
761 void performTrivialCopy(NodeBuilder &Bldr, ExplodedNode *Pred,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopUnrolling.h 40 ExplodedNode* Pred, unsigned maxVisitOnPath);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h 62 virtual void processCFGElement(const CFGElement E, ExplodedNode* Pred,
70 ExplodedNode *Pred) = 0;
76 ExplodedNode *Pred,
86 ExplodedNode *Pred,
95 ExplodedNode *Pred,
111 ExplodedNode *Pred,
118 ExplodedNode *Pred,
123 ExplodedNode *Pred) = 0;
126 virtual void processCallExit(ExplodedNode *Pred) = 0;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h 28 ExplodedNode *node;
34 WorkListUnit(ExplodedNode *N, BlockCounter C,
41 explicit WorkListUnit(ExplodedNode *N, BlockCounter C)
48 ExplodedNode *getNode() const { return node; }
68 void enqueue(ExplodedNode *N, const CFGBlock *B, unsigned idx) {
72 void enqueue(ExplodedNode *N) {
tools/clang/lib/Analysis/plugins/SampleAnalyzer/MainCallChecker.cpp 32 ExplodedNode *N = C.generateErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp 48 const ExplodedNode *GraphRoot = *G.roots_begin();
tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp 64 ExplodedNode *N = C.generateErrorNode(StOutBound);
tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp 234 ExplodedNode *errorNode = checkerContext.generateErrorNode(errorState);
tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp 122 void generateBugReport(ExplodedNode *N,
143 if (ExplodedNode *N = C.generateErrorNode()) {
164 if (ExplodedNode *N = C.generateErrorNode()) {
206 void NilArgChecker::generateBugReport(ExplodedNode *N,
491 ExplodedNode *N = C.generateNonFatalErrorNode();
569 ExplodedNode *N = C.generateErrorNode(stateNull);
628 if (ExplodedNode *N = C.generateNonFatalErrorNode()) {
747 Optional<ExplodedNode*> errorNode;
956 static bool alreadyExecutedAtLeastOneLoopIteration(const ExplodedNode *N,
967 for (ExplodedNode::const_pred_iterator I = N->pred_begin(),
tools/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp 168 ExplodedNode *ErrNode = C.generateNonFatalErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp 34 if (ExplodedNode *N = C.generateNonFatalErrorNode(state)) {
tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp 564 ExplodedNode *N = C.generateErrorNode(state);
583 if (ExplodedNode *N = C.generateErrorNode(State)) {
601 if (ExplodedNode *N = C.generateErrorNode(State)) {
623 if (ExplodedNode *N = C.generateNonFatalErrorNode(State)) {
639 if (ExplodedNode *N = C.generateErrorNode(State)) {
tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp 74 ExplodedNode *N) const;
94 ExplodedNode *N = C.generateErrorNode();
176 if (ExplodedNode *N = C.generateErrorNode()) {
249 if (ExplodedNode *N = C.generateErrorNode()) {
275 if (ExplodedNode *N = C.generateErrorNode()) {
350 ExplodedNode *N = C.generateErrorNode();
405 ExplodedNode *N = C.generateErrorNode();
460 if (ExplodedNode *N = C.generateErrorNode()) {
505 ExplodedNode *N) const {
578 if (ExplodedNode *N = C.generateErrorNode(state, &Tag))
tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp 130 if (ExplodedNode *errorNode = C.generateErrorNode()) {
tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp 497 ExplodedNode *ErrNode = nullptr;
670 ExplodedNode *ErrNode = C.generateNonFatalErrorNode();
733 ExplodedNode *ErrNode = C.generateErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp 125 if (ExplodedNode *N = C.generateNonFatalErrorNode()) {
tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp 52 void reportBug(ExplodedNode *N, CheckerContext &C, const char Msg[]) const;
107 ExplodedNode *N = C.generateNonFatalErrorNode(C.getState());
117 void ConversionChecker::reportBug(ExplodedNode *N, CheckerContext &C,
tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp 332 ExplodedNode *Node = C.generateNonFatalErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp 48 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
94 ExplodedNode *N = C.generateNonFatalErrorNode();
105 const ExplodedNode *N, BugReporterContext &BRC,
tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp 122 ExplodedNode *N = C.generateErrorNode(State);
198 if (ExplodedNode *N = C.generateErrorNode()) {
235 if (ExplodedNode *N = C.generateSink(nullState, C.getPredecessor())) {
276 if (ExplodedNode *N = C.generateSink(StNull, C.getPredecessor())) {
tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp 36 static const Expr *getDenomExpr(const ExplodedNode *N) {
46 if (ExplodedNode *N = C.generateErrorNode(StateZero)) {
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp 50 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
92 const ExplodedNode *N, BugReporterContext &BRC, PathSensitiveBugReport &) {
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp 65 ExplodedNode *dynamicTypePropagationOnCasts(const CastExpr *CE,
86 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
96 const ObjCObjectPointerType *To, ExplodedNode *N,
275 ExplodedNode *DynamicTypePropagation::dynamicTypePropagationOnCasts(
535 ExplodedNode *AfterTypeProp = dynamicTypePropagationOnCasts(CE, State, C);
588 ExplodedNode *N = C.addTransition(State, AfterTypeProp, &IllegalConv);
800 ExplodedNode *N = C.addTransition(State, &Tag);
873 ExplodedNode *Pred = C.getPredecessor();
901 ExplodedNode *N, SymbolRef Sym, CheckerContext &C,
924 const ExplodedNode *N, BugReporterContext &BRC,
tools/clang/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp 80 if (const ExplodedNode *N = C.generateNonFatalErrorNode()) {
tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp 30 ExplodedNode *ExampleNode;
52 ExplodedNode *reportBug(llvm::StringRef Msg, CheckerContext &C) const;
53 ExplodedNode *reportBug(llvm::StringRef Msg, BugReporter &BR,
54 ExplodedNode *N) const;
108 ExplodedNode *N = C.getPredecessor();
135 ExplodedNode *ExprInspectionChecker::reportBug(llvm::StringRef Msg,
137 ExplodedNode *N = C.generateNonFatalErrorNode();
142 ExplodedNode *ExprInspectionChecker::reportBug(llvm::StringRef Msg,
144 ExplodedNode *N) const {
265 ExplodedNode *N = C.getPredecessor();
272 if (ExplodedNode *BugNode = reportBug("SYMBOL DEAD", C))
290 ExplodedNode *N = Item.second.ExampleNode;
tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp 51 if (ExplodedNode *N = C.generateNonFatalErrorNode()) {
tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp 737 if (ExplodedNode *N = C.generateNonFatalErrorNode()) {
tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp 58 VisitNode(const ExplodedNode *N, BugReporterContext &BRC,
282 const ExplodedNode *N, BugReporterContext &BRC, PathSensitiveBugReport &) {
tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp 230 CheckerContext &C, ExplodedNode *ErrNode) const;
233 ExplodedNode *ErrNode) const;
236 ExplodedNode *ErrNode) const;
238 CheckerContext &C, ExplodedNode *ErrNode) const;
929 auto *N = C.generateErrorNode(State);
941 auto *N = C.generateErrorNode(State);
1049 auto *N = C.generateErrorNode(State);
1056 auto *N = C.generateErrorNode(State);
1091 auto *N = C.generateNonFatalErrorNode(State);
1130 auto *N = C.generateNonFatalErrorNode(State);
1592 ExplodedNode *ErrNode) const {
1602 ExplodedNode *ErrNode) const {
1613 ExplodedNode *ErrNode) const {
1623 ExplodedNode *ErrNode) const {
tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp 126 PathDiagnosticPieceRef VisitNode(const ExplodedNode *Succ,
758 ExplodedNode *ErrNode = C.addTransition(C.getState(), C.getPredecessor(), &Tag);
1001 NonLocalizedStringBRVisitor::VisitNode(const ExplodedNode *Succ,
tools/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp 273 ExplodedNode *N = C.generateErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.cpp 26 const ExplodedNode *const ExplNode,
51 const ExplodedNode *const ExplNode,
71 const ExplodedNode *const ExplNode,
88 MPIBugReporter::RequestNodeVisitor::VisitNode(const ExplodedNode *N,
tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h 45 const ExplodedNode *const ExplNode,
56 const ExplodedNode *const ExplNode,
67 const ExplodedNode *const ExplNode,
92 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp 44 ExplodedNode *ErrorNode = Ctx.generateNonFatalErrorNode();
76 ExplodedNode *ErrorNode{nullptr};
108 ExplodedNode *ErrorNode{nullptr};
tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp 113 const ExplodedNode *getAllocationNode(const ExplodedNode *N, SymbolRef Sym,
113 const ExplodedNode *getAllocationNode(const ExplodedNode *N, SymbolRef Sym,
118 ExplodedNode *N,
145 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
230 ExplodedNode *N = C.generateNonFatalErrorNode(State);
275 ExplodedNode *N = C.generateNonFatalErrorNode(State);
337 ExplodedNode *N = C.generateNonFatalErrorNode(State);
448 const ExplodedNode *
449 MacOSKeychainAPIChecker::getAllocationNode(const ExplodedNode *N,
455 const ExplodedNode *AllocNode = N;
474 const AllocationPair &AP, ExplodedNode *N, CheckerContext &C) const {
486 const ExplodedNode *AllocNode = getAllocationNode(N, AP.first, C);
570 ExplodedNode *N = C.generateNonFatalErrorNode(C.getState(), &Tag);
622 const ExplodedNode *N, BugReporterContext &BRC,
tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp 134 ExplodedNode *N = C.generateErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp 354 using LeakInfo = std::pair<const ExplodedNode *, const MemRegion *>;
659 static LeakInfo getAllocationSite(const ExplodedNode *N, SymbolRef Sym,
662 void reportLeak(SymbolRef Sym, ExplodedNode *N, CheckerContext &C) const;
752 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
757 const ExplodedNode *EndPathNode,
2058 if (ExplodedNode *N = C.generateErrorNode()) {
2104 if (ExplodedNode *N = C.generateErrorNode()) {
2128 if (ExplodedNode *N = C.generateErrorNode()) {
2188 ExplodedNode *N = C.generateErrorNode();
2244 if (ExplodedNode *N = C.generateErrorNode()) {
2282 if (ExplodedNode *N = C.generateErrorNode()) {
2310 if (ExplodedNode *N = C.generateErrorNode()) {
2338 if (ExplodedNode *N = C.generateErrorNode()) {
2366 if (ExplodedNode *N = C.generateErrorNode()) {
2512 MallocChecker::LeakInfo MallocChecker::getAllocationSite(const ExplodedNode *N,
2518 const ExplodedNode *AllocNode = N;
2554 void MallocChecker::reportLeak(SymbolRef Sym, ExplodedNode *N,
2590 const ExplodedNode *AllocNode = nullptr;
2663 ExplodedNode *N = C.getPredecessor();
3170 PathDiagnosticPieceRef MallocBugVisitor::VisitNode(const ExplodedNode *N,
tools/clang/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cpp 66 ExplodedNode *N = C.generateNonFatalErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp 172 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
216 ExplodedNode *reportBug(const MemRegion *Region, const CXXRecordDecl *RD,
222 const ExplodedNode *getMoveLocation(const ExplodedNode *N,
222 const ExplodedNode *getMoveLocation(const ExplodedNode *N,
274 MoveChecker::MovedBugVisitor::VisitNode(const ExplodedNode *N,
332 const ExplodedNode *MoveChecker::getMoveLocation(const ExplodedNode *N,
332 const ExplodedNode *MoveChecker::getMoveLocation(const ExplodedNode *N,
337 const ExplodedNode *MoveNode = N;
380 ExplodedNode *N = reportBug(Region, RD, C, MK);
390 ExplodedNode *MoveChecker::reportBug(const MemRegion *Region,
393 if (ExplodedNode *N = misuseCausesCrash(MK) ? C.generateErrorNode()
402 const ExplodedNode *MoveNode = getMoveLocation(N, Region, C);
tools/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp 64 ExplodedNode *N = C.generateNonFatalErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp 39 genReportNullAttrNonNull(const ExplodedNode *ErrorN,
43 genReportReferenceToNullPointer(const ExplodedNode *ErrorN,
144 if (ExplodedNode *errorNode = C.generateErrorNode(stateNull)) {
164 if (ExplodedNode *N = C.generateSink(stateNull, C.getPredecessor())) {
183 NonNullParamChecker::genReportNullAttrNonNull(const ExplodedNode *ErrorNode,
209 const ExplodedNode *ErrorNode, const Expr *ArgE) const {
tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp 140 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
155 ExplodedNode *N, const MemRegion *Region,
160 void reportBug(StringRef Msg, ErrorKind Error, ExplodedNode *N,
294 const ExplodedNode *N, BugReporterContext &BRC,
404 static bool checkInvariantViolation(ProgramStateRef State, ExplodedNode *N,
434 ErrorKind Error, ExplodedNode *N, const MemRegion *Region,
581 ExplodedNode *N = C.generateErrorNode(State, &Tag);
617 ExplodedNode *N = C.addTransition(State, C.getPredecessor(), &Tag);
681 ExplodedNode *N = C.generateErrorNode(State);
711 ExplodedNode *N = C.addTransition(State);
723 ExplodedNode *N = C.addTransition(State);
1097 ExplodedNode *N = C.generateErrorNode(State, &Tag);
1141 ExplodedNode *N = C.addTransition(State, C.getPredecessor(), &Tag);
tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp 45 if (ExplodedNode *N = C.generateErrorNode()) {
68 if (ExplodedNode *N = C.generateNonFatalErrorNode(nullState)) {
tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp 143 ExplodedNode *N = C.generateErrorNode(StOutBound);
tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp 155 ExplodedNode *N = C.generateErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp 72 PathDiagnosticPieceRef VisitNode(const ExplodedNode *Succ,
181 ExplodedNode *ErrNode = C.generateErrorNode();
246 SuperDeallocBRVisitor::VisitNode(const ExplodedNode *Succ,
tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp 170 if (ExplodedNode *N = C.generateNonFatalErrorNode()) {
193 if (ExplodedNode *N = C.generateNonFatalErrorNode()) {
tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp 60 if (ExplodedNode *N = C.generateNonFatalErrorNode()) {
tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp 240 ExplodedNode *N = C.generateErrorNode();
305 ExplodedNode *N = C.generateErrorNode();
328 ExplodedNode *N = C.generateErrorNode();
399 ExplodedNode *N = C.generateErrorNode();
439 ExplodedNode *N = C.generateErrorNode();
453 ExplodedNode *N = C.generateErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp 232 const ExplodedNode *pred = C.getPredecessor();
273 const ExplodedNode *Pred = C.getPredecessor();
874 ExplodedNode *N = C.generateErrorNode(St);
963 ExplodedNode * RetainCountChecker::processReturn(const ReturnStmt *S,
965 ExplodedNode *Pred = C.getPredecessor();
1066 ExplodedNode * RetainCountChecker::checkReturnWithRetEffect(const ReturnStmt *S,
1068 ExplodedNode *Pred,
1094 ExplodedNode *N = C.addTransition(state, Pred, &ReturnOwnLeakTag);
1120 ExplodedNode *N = C.addTransition(state, Pred, &ReturnNotOwnedTag);
1208 ExplodedNode *Pred,
1264 ExplodedNode *N = Ctx.generateSink(state, Pred, Tag);
1312 ExplodedNode *
1316 ExplodedNode *Pred) const {
1318 ExplodedNode *N = Ctx.addTransition(state, Pred);
1369 ExplodedNode *Pred = processReturn(RS, Ctx);
1411 ExplodedNode *Pred = C.getPredecessor();
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h 326 ExplodedNode* checkReturnWithRetEffect(const ReturnStmt *S, CheckerContext &C,
327 ExplodedNode *Pred, RetEffect RE, RefVal X,
352 handleAutoreleaseCounts(ProgramStateRef state, ExplodedNode *Pred,
358 ExplodedNode *processLeaks(ProgramStateRef state,
361 ExplodedNode *Pred = nullptr) const;
375 ExplodedNode * processReturn(const ReturnStmt *S, CheckerContext &C) const;
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp 328 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
333 const ExplodedNode *N,
342 const ExplodedNode *N,
352 static const ExplodedNode *getCalleeNode(const ExplodedNode *Pred) {
352 static const ExplodedNode *getCalleeNode(const ExplodedNode *Pred) {
360 const ExplodedNode *N = Pred;
372 annotateConsumedSummaryMismatch(const ExplodedNode *N,
377 const ExplodedNode *CN = getCalleeNode(N);
422 annotateStartParameter(const ExplodedNode *N, SymbolRef Sym,
452 RefCountReportVisitor::VisitNode(const ExplodedNode *N, BugReporterContext &BRC,
477 const ExplodedNode *PrevNode = N->getFirstPred();
621 const ExplodedNode* N;
624 AllocationInfo(const ExplodedNode *InN,
632 const ExplodedNode *N, SymbolRef Sym) {
633 const ExplodedNode *AllocationNode = N;
634 const ExplodedNode *AllocationNodeInCurrentOrParentContext = N;
718 const ExplodedNode *EndN,
726 const ExplodedNode *EndN,
812 ExplodedNode *n, SymbolRef sym, bool isLeak)
820 ExplodedNode *n, SymbolRef sym,
856 const ExplodedNode *AllocNode = nullptr;
906 ExplodedNode *n, SymbolRef sym,
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h 63 ExplodedNode *n, SymbolRef sym,
67 ExplodedNode *n, SymbolRef sym,
91 RefLeakReport(const RefCountBug &D, const LangOptions &LOpts, ExplodedNode *n,
tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp 64 ExplodedNode *N = C.generateErrorNode(StOutBound);
tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp 82 ExplodedNode *N = C.generateErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp 64 ExplodedNode *ErrNode) const;
193 ExplodedNode *N = C.generateNonFatalErrorNode(State);
203 ExplodedNode *ErrNode = C.generateErrorNode();
218 ExplodedNode *ErrNode) const {
tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp 154 ExplodedNode *N = C.generateNonFatalErrorNode();
193 ExplodedNode *N = C.generateNonFatalErrorNode();
216 ExplodedNode *N = C.generateNonFatalErrorNode();
330 ExplodedNode *N = Ctx.generateNonFatalErrorNode(State);
tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp 274 if (ExplodedNode *N = C.generateNonFatalErrorNode(state)) {
344 if (ExplodedNode *N = C.generateErrorNode(stateNull)) {
372 ExplodedNode *N = C.generateErrorNode();
400 ExplodedNode *N = C.generateErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/Taint.cpp 207 PathDiagnosticPieceRef TaintBugVisitor::VisitNode(const ExplodedNode *N,
tools/clang/lib/StaticAnalyzer/Checkers/Taint.h 92 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
tools/clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp 53 if (ExplodedNode *N = C.generateNonFatalErrorNode()) {
tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp 72 PathDiagnosticPieceRef VisitNode(const ExplodedNode *Succ,
96 DivisionBRVisitor::VisitNode(const ExplodedNode *Succ, BugReporterContext &BRC,
166 if (ExplodedNode *N = C.generateErrorNode(C.getState())) {
tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp 65 ExplodedNode *N = Ctx.generateErrorNode();
87 ExplodedNode *PrevN = *N->pred_begin();
tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp 74 if (ExplodedNode *N = C.generateErrorNode()) {
tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp 88 ExplodedNode *N = C.generateErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp 48 ExplodedNode *N = C.generateErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp 48 ExplodedNode *N = C.generateErrorNode();
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp 175 ExplodedNode *Node = Context.generateNonFatalErrorNode(UpdatedState);
tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp 132 ExplodedNode *N = C.generateErrorNode(State);
289 ExplodedNode *N = C.generateErrorNode(state);
341 ExplodedNode *N = C.generateErrorNode(falseState);
tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp 49 ExplodedNode *N = C.generateErrorNode(State);
tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp 58 const ExplodedNode *getStartCallSite(const ExplodedNode *N,
58 const ExplodedNode *getStartCallSite(const ExplodedNode *N,
64 StringRef Msg2, CheckerContext &C, ExplodedNode *N,
81 const ExplodedNode *EndPathNode,
91 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
214 if (ExplodedNode *N = C.addTransition(State))
223 const ExplodedNode *
224 ValistChecker::getStartCallSite(const ExplodedNode *N,
227 const ExplodedNode *StartCallNode = N;
253 if (ExplodedNode *N = C.generateErrorNode()) {
267 CheckerContext &C, ExplodedNode *N,
284 const ExplodedNode *StartNode = getStartCallSite(N, Reg);
324 if (ExplodedNode *N = C.addTransition(State))
332 if (ExplodedNode *N = C.addTransition(State))
345 if (ExplodedNode *N = C.addTransition(State))
379 const ExplodedNode *N, BugReporterContext &BRC, PathSensitiveBugReport &) {
tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp 122 if (ExplodedNode *N = C.generateErrorNode(C.getState())) {
tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp 138 ExplodedNode *N =
tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp 96 std::pair<PathDiagnosticCallPiece *, const ExplodedNode *>;
101 llvm::DenseMap<const ExplodedNode *, std::vector<PathDiagnosticPieceRef>>;
116 const ExplodedNode *CurrentNode;
135 const ExplodedNode *ErrorNode,
152 const ExplodedNode *getCurrentNode() const { return CurrentNode; }
210 const ExplodedNode *const ErrorNode;
225 PathSensitiveBugReport *r, const ExplodedNode *ErrorNode,
280 std::string StackHintGeneratorForSymbol::getMessage(const ExplodedNode *N){
723 const ExplodedNode *N = I.second;
1028 const ExplodedNode *N) {
1117 findExecutedLines(const SourceManager &SM, const ExplodedNode *N);
1967 const PathDiagnosticConsumer *PDC, const ExplodedNode *ErrorNode,
1977 PathSensitiveBugReport *r, const ExplodedNode *ErrorNode,
2129 const ExplodedNode *N = getErrorNode();
2427 const ExplodedNode *ErrorNode;
2435 using PriorityMapTy = llvm::DenseMap<const ExplodedNode *, unsigned>;
2443 std::pair<PathSensitiveBugReport *, const ExplodedNode *>;
2456 bool operator()(const ExplodedNode *LHS, const ExplodedNode *RHS) const {
2456 bool operator()(const ExplodedNode *LHS, const ExplodedNode *RHS) const {
2487 SmallVector<const ExplodedNode *, 32> Nodes;
2503 llvm::SmallPtrSet<const ExplodedNode *, 32> RemainingNodes;
2506 const ExplodedNode *NewNode = ForwardMap.lookup(Report->getErrorNode());
2517 std::queue<const ExplodedNode *> WS;
2524 const ExplodedNode *Node = WS.front();
2541 for (const ExplodedNode *Succ : Node->succs())
2553 const ExplodedNode *OrigN;
2564 ExplodedNode *Succ = nullptr;
2568 ExplodedNode *NewN = GNew->createUncachedNode(
2695 const ExplodedNode *ErrorNode,
2703 const ExplodedNode *NextNode = ErrorNode->getFirstPred();
2716 const ExplodedNode *Pred = NextNode->getFirstPred();
2760 const ExplodedNode *ErrorNode = BugPath->ErrorNode;
2848 if (const ExplodedNode *E = PR->getErrorNode()) {
2875 const ExplodedNode *N;
2876 ExplodedNode::const_succ_iterator I, E;
2878 FRIEC_WLItem(const ExplodedNode *n)
2915 const ExplodedNode *errorNode = R->getErrorNode();
2941 llvm::DenseMap<const ExplodedNode *, unsigned> Visited;
2952 const ExplodedNode *Succ = *WI.I;
3083 findExecutedLines(const SourceManager &SM, const ExplodedNode *N) {
tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp 165 static bool hasVisibleUpdate(const ExplodedNode *LeftNode, SVal LeftVal,
166 const ExplodedNode *RightNode, SVal RightVal) {
184 const ExplodedNode *N) {
208 getConcreteIntegerValue(const Expr *CondVarExpr, const ExplodedNode *N) {
217 const ExplodedNode *N,
232 static bool isInterestingExpr(const Expr *E, const ExplodedNode *N,
266 const ExplodedNode *N,
298 const ExplodedNode *,
304 const ExplodedNode *,
309 const ExplodedNode *EndPathNode,
376 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
395 bool isRegionOfInterestModifiedInFrame(const ExplodedNode *N) {
405 void findModifyingFrames(const ExplodedNode *N);
413 const ExplodedNode *N, const RegionVector &FieldChain,
545 NoStoreFuncVisitor::VisitNode(const ExplodedNode *N, BugReporterContext &BR,
618 void NoStoreFuncVisitor::findModifyingFrames(const ExplodedNode *N) {
658 PathSensitiveBugReport &R, const CallEvent &Call, const ExplodedNode *N,
803 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
830 const ExplodedNode *N, const MemRegion *R,
852 Optional<SourceLocation> matchAssignment(const ExplodedNode *N) {
924 static void addVisitorIfNecessary(const ExplodedNode *Node, const Stmt *S,
1003 PathDiagnosticPieceRef visitNodeInitial(const ExplodedNode *N,
1130 PathDiagnosticPieceRef visitNodeMaybeUnsuppress(const ExplodedNode *N,
1177 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
1192 void finalizeVisitor(BugReporterContext &, const ExplodedNode *,
1216 static bool isInitializationOfVar(const ExplodedNode *N, const VarRegion *VR) {
1361 FindLastStoreBRVisitor::VisitNode(const ExplodedNode *Succ,
1367 const ExplodedNode *StoreSite = nullptr;
1368 const ExplodedNode *Pred = Succ->getFirstPred();
1540 bool TrackConstraintBRVisitor::isUnderconstrained(const ExplodedNode *N) const {
1547 const ExplodedNode *N, BugReporterContext &BRC, PathSensitiveBugReport &) {
1548 const ExplodedNode *PrevN = N->getFirstPred();
1603 SuppressInlineDefensiveChecksVisitor(DefinedSVal Value, const ExplodedNode *N)
1626 SuppressInlineDefensiveChecksVisitor::VisitNode(const ExplodedNode *Succ,
1629 const ExplodedNode *Pred = Succ->getFirstPred();
1714 const ExplodedNode *Origin;
1719 TrackControlDependencyCondBRVisitor(const ExplodedNode *O)
1727 PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
1735 const ExplodedNode *N,
1786 TrackControlDependencyCondBRVisitor::VisitNode(const ExplodedNode *N,
1835 const ExplodedNode *N) {
1858 const ExplodedNode *N) {
1878 const ExplodedNode *NI = N;
1923 static const ExplodedNode* findNodeForExpression(const ExplodedNode *N,
1923 static const ExplodedNode* findNodeForExpression(const ExplodedNode *N,
1933 bool bugreporter::trackExpressionValue(const ExplodedNode *InputNode,
1943 const ExplodedNode *LVNode = findNodeForExpression(InputNode, Inner);
2081 const ExplodedNode *N) {
2095 NilReceiverBRVisitor::VisitNode(const ExplodedNode *N, BugReporterContext &BRC,
2140 ConditionBRVisitor::VisitNode(const ExplodedNode *N, BugReporterContext &BRC,
2152 ConditionBRVisitor::VisitNodeImpl(const ExplodedNode *N,
2191 const Stmt *Term, const ExplodedNode *N, const CFGBlock *srcBlk,
2251 const ExplodedNode *N, bool TookTrue) {
2322 const ExplodedNode *N,
2406 PathSensitiveBugReport &R, const ExplodedNode *N, bool TookTrue,
2526 PathSensitiveBugReport &report, const ExplodedNode *N, bool TookTrue) {
2553 PathSensitiveBugReport &report, const ExplodedNode *N, bool TookTrue,
2589 PathSensitiveBugReport &report, const ExplodedNode *N, bool TookTrue,
2626 const ExplodedNode *N, bool TookTrue,
2676 BugReporterContext &BRC, const ExplodedNode *N,
2763 UndefOrNullArgVisitor::VisitNode(const ExplodedNode *N, BugReporterContext &BRC,
2820 BugReporterContext &BRC, const ExplodedNode *EndPathNode,
2857 const ExplodedNode *N, BugReporterContext &, PathSensitiveBugReport &) {
2891 PathDiagnosticPieceRef TagVisitor::VisitNode(const ExplodedNode *N,
tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp 170 NodeBuilder &Bldr, ExplodedNode *Pred) {
217 NodeBuilder &Bldr, ExplodedNode *Pred) {
287 NodeBuilder &Bldr, ExplodedNode *Pred) {
334 NodeBuilder &Bldr, ExplodedNode *Pred) {
382 NodeBuilder &Bldr, ExplodedNode *Pred) {
426 NodeBuilder &Bldr, ExplodedNode *Pred) {
438 ExplodedNode *Pred,
451 ExplodedNode *Pred,
483 NodeBuilder &Bldr, ExplodedNode *Pred) {
496 ExplodedNode *Pred,
524 NodeBuilder &Bldr, ExplodedNode *Pred) {
534 const CXXNewExpr *NE, SVal Target, ExplodedNodeSet &Dst, ExplodedNode *Pred,
569 NodeBuilder &Bldr, ExplodedNode *Pred) {
tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp 110 ExplodedNode *Node = G.getNode(StartLoc, InitState, false, &IsNew);
146 ExplodedNode *Node = WU.getNode();
154 void CoreEngine::dispatchWorkItem(ExplodedNode* Pred, ProgramPoint Loc,
181 ExplodedNode *PNode = Pred->getFirstPred();
209 void CoreEngine::HandleBlockEdge(const BlockEdge &L, ExplodedNode *Pred) {
278 ExplodedNode *Pred) {
296 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) {
419 void CoreEngine::HandleCallEnter(const CallEnter &CE, ExplodedNode *Pred) {
425 const CFGBlock * B, ExplodedNode *Pred) {
437 ExplodedNode *Pred) {
448 ExplodedNode *Pred) {
459 ExplodedNode *Pred) {
472 ExplodedNode *Pred) {
498 ExplodedNode *Pred) {
500 ExplodedNode *Node = G.getNode(Loc, State, false, &IsNew);
513 void CoreEngine::enqueueStmtNode(ExplodedNode *N,
556 ExplodedNode *Succ = G.getNode(Loc, N->getState(), false, &IsNew);
563 ExplodedNode *CoreEngine::generateCallExitBeginNode(ExplodedNode *N,
563 ExplodedNode *CoreEngine::generateCallExitBeginNode(ExplodedNode *N,
572 ExplodedNode *Node = G.getNode(Loc, N->getState(), false, &isNew);
605 ExplodedNode* NodeBuilder::generateNodeImpl(const ProgramPoint &Loc,
607 ExplodedNode *FromN,
611 ExplodedNode *N = C.Eng.G.getNode(Loc, State, MarkAsSink, &IsNew);
634 ExplodedNode *BranchNodeBuilder::generateNode(ProgramStateRef State,
636 ExplodedNode *NodePred) {
643 ExplodedNode *Succ = generateNodeImpl(Loc, State, NodePred);
647 ExplodedNode*
652 ExplodedNode *Succ =
666 ExplodedNode*
670 ExplodedNode *Succ =
681 ExplodedNode*
694 ExplodedNode *Succ =
tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp 58 bool ExplodedGraph::shouldCollect(const ExplodedNode *node) {
93 const ExplodedNode *pred = *(node->pred_begin());
97 const ExplodedNode *succ = *(node->succ_begin());
155 void ExplodedGraph::collectNode(ExplodedNode *node) {
161 ExplodedNode *pred = *(node->pred_begin());
162 ExplodedNode *succ = *(node->succ_begin());
203 using ExplodedNodeVector = BumpVector<ExplodedNode *>;
204 using GroupStorage = llvm::PointerUnion<ExplodedNode *, ExplodedNodeVector *>;
206 void ExplodedNode::addPredecessor(ExplodedNode *V, ExplodedGraph &G) {
212 void ExplodedNode::NodeGroup::replaceNode(ExplodedNode *node) {
221 void ExplodedNode::NodeGroup::addNode(ExplodedNode *N, ExplodedGraph &G) {
235 ExplodedNode *Old = Storage.get<ExplodedNode *>();
235 ExplodedNode *Old = Storage.get<ExplodedNode *>();
262 ExplodedNode * const *ExplodedNode::NodeGroup::begin() const {
274 ExplodedNode * const *ExplodedNode::NodeGroup::end() const {
354 for (const ExplodedNode *N = getFirstSucc(); N; N = N->getFirstSucc()) {
381 for (const ExplodedNode *N = getFirstPred(); N; N = N->getFirstPred())
395 ExplodedNode *ExplodedGraph::getNode(const ProgramPoint &L,
433 ExplodedNode *ExplodedGraph::createUncachedNode(const ProgramPoint &L,
449 using Pass1Ty = llvm::DenseSet<const ExplodedNode *>;
456 SmallVector<const ExplodedNode*, 10> WL1, WL2;
465 const ExplodedNode *N = WL1.pop_back_val();
490 const ExplodedNode *N = WL2.pop_back_val();
498 ExplodedNode *NewN = G->createUncachedNode(N->getLocation(), N->State,
514 for (ExplodedNode::pred_iterator I = N->Preds.begin(), E = N->Preds.end();
527 for (ExplodedNode::succ_iterator I = N->Succs.begin(), E = N->Succs.end();
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp 627 void ExprEngine::processCFGElement(const CFGElement E, ExplodedNode *Pred,
665 const ExplodedNode *Pred,
689 void ExprEngine::removeDead(ExplodedNode *Pred, ExplodedNodeSet &Out,
768 void ExprEngine::ProcessStmt(const Stmt *currStmt, ExplodedNode *Pred) {
798 void ExprEngine::ProcessLoopExit(const Stmt* S, ExplodedNode *Pred) {
817 ExplodedNode *Pred) {
905 ExplodedNode *Pred) {
932 ExplodedNode *Pred) {
951 ExplodedNode *Pred,
985 ExplodedNode *Pred,
1025 ExplodedNode *Pred, ExplodedNodeSet &Dst) {
1045 ExplodedNode *Pred, ExplodedNodeSet &Dst) {
1069 ExplodedNode *Pred,
1107 ExplodedNode *CleanPred =
1131 ExplodedNode *Pred,
1160 for (ExplodedNode *Node : PreVisit) {
1196 void ExprEngine::Visit(const Stmt *S, ExplodedNode *Pred,
1287 const ExplodedNode *node = Bldr.generateSink(S, Pred, Pred->getState());
1525 const ExplodedNode *node = Bldr.generateSink(S, Pred, Pred->getState());
1845 bool ExprEngine::replayWithoutInlining(ExplodedNode *N,
1850 ExplodedNode *BeforeProcessingCall = nullptr;
1893 ExplodedNode *NewNode = G.getNode(NewNodeLoc, NewNodeState, false, &IsNew);
1911 ExplodedNode *Pred) {
1922 ExplodedNode *UpdatedNode = nodeBuilder.generateNode(NewState, Pred);
1953 const ExplodedNode *Sink =
2089 ExplodedNode *Pred,
2187 ExplodedNode *Pred,
2253 ExplodedNode *Pred,
2263 ExplodedNode *Pred,
2420 ExplodedNode *Pred,
2511 ExplodedNode *Pred,
2530 for (auto *Node : CheckerPreStmt) {
2561 void ExprEngine::VisitMemberExpr(const MemberExpr *M, ExplodedNode *Pred,
2641 void ExprEngine::VisitAtomicExpr(const AtomicExpr *AE, ExplodedNode *Pred,
2760 ExplodedNode *Pred,
2818 ExplodedNode *Pred,
2842 ExplodedNode *Pred,
2880 ExplodedNode *Pred,
2964 void ExprEngine::VisitGCCAsmStmt(const GCCAsmStmt *A, ExplodedNode *Pred,
2987 void ExprEngine::VisitMSAsmStmt(const MSAsmStmt *A, ExplodedNode *Pred,
3004 static bool nodeHasBugReport(const ExplodedNode *N) {
3016 const ExplodedNode *EN = PR->getErrorNode();
3030 const ExplodedNode *N,
3031 llvm::function_ref<void(const ExplodedNode *)> PreCallback,
3032 llvm::function_ref<void(const ExplodedNode *)> PostCallback,
3033 llvm::function_ref<bool(const ExplodedNode *)> Stop) {
3048 static bool isNodeHidden(const ExplodedNode *N) {
3052 static std::string getNodeLabel(const ExplodedNode *N, ExplodedGraph *G){
3106 void ExprEngine::ViewGraph(ArrayRef<const ExplodedNode*> Nodes) {
3117 std::vector<const ExplodedNode *> Src;
3126 const auto *N = const_cast<ExplodedNode *>(R->getErrorNode());
3139 std::string ExprEngine::DumpGraph(ArrayRef<const ExplodedNode*> Nodes,
tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp 41 ExplodedNode *Pred,
196 void ExprEngine::VisitBlockExpr(const BlockExpr *BE, ExplodedNode *Pred,
262 ExplodedNode* Pred) {
287 StmtNodeBuilder &Bldr, ExplodedNode* Pred) {
302 ExplodedNode *Pred, ExplodedNodeSet &Dst) {
310 ExplodedNode *subExprNode = *I;
550 ExplodedNode *Pred,
574 void ExprEngine::VisitDeclStmt(const DeclStmt *DS, ExplodedNode *Pred,
593 ExplodedNode *N = *I;
601 ExplodedNode *UpdatedN = N;
638 void ExprEngine::VisitLogicalExpr(const BinaryOperator* B, ExplodedNode *Pred,
671 ExplodedNode *N = Pred;
733 ExplodedNode *Pred,
784 ExplodedNode *Pred,
795 for (const ExplodedNode *N = Pred ; N ; N = *N->pred_begin()) {
847 ExplodedNode *Pred, ExplodedNodeSet &Dst) {
866 ExplodedNode *Pred,
924 void ExprEngine::VisitUnaryOperator(const UnaryOperator* U, ExplodedNode *Pred,
1061 ExplodedNode *Pred,
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp 27 ExplodedNode *Pred,
40 void ExprEngine::performTrivialCopy(NodeBuilder &Bldr, ExplodedNode *Pred,
396 ExplodedNode *Pred,
577 for (ExplodedNode *N : DstEvaluated) {
605 ExplodedNode *Pred,
669 ExplodedNode *Pred,
737 void ExprEngine::VisitCXXNewExpr(const CXXNewExpr *CNE, ExplodedNode *Pred,
831 ExplodedNode *NewN = Bldr.generateNode(CNE, Pred, State);
848 ExplodedNode *Pred, ExplodedNodeSet &Dst) {
855 ExplodedNode *Pred,
873 void ExprEngine::VisitCXXThisExpr(const CXXThisExpr *TE, ExplodedNode *Pred,
889 void ExprEngine::VisitLambdaExpr(const LambdaExpr *LE, ExplodedNode *Pred,
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp 40 ExplodedNode *Pred) {
61 ExplodedNode *Node = G.getNode(Loc, state, false, &isNew);
73 const CFGBlock*> getLastStmt(const ExplodedNode *Node) {
161 ExplodedNode *Pred,
202 void ExprEngine::processCallExit(ExplodedNode *CEBNode) {
282 ExplodedNode *BindedRetNode = G.getNode(Loc, state, false, &isNew);
310 ExplodedNode *CEENode = G.getNode(Loc, CEEState, false, &isNew);
431 NodeBuilder &Bldr, ExplodedNode *Pred,
464 if (ExplodedNode *N = G.getNode(Loc, State, false, &isNew)) {
496 void ExprEngine::VisitCallExpr(const CallExpr *CE, ExplodedNode *Pred,
550 ExplodedNode *Pred,
568 void ExprEngine::evalCall(ExplodedNodeSet &Dst, ExplodedNode *Pred,
673 ExplodedNode *Pred,
683 ExprEngine::mayInlineCallKind(const CallEvent &Call, const ExplodedNode *Pred,
917 const ExplodedNode *Pred,
1002 void ExprEngine::defaultEvalCall(NodeBuilder &Bldr, ExplodedNode *Pred,
1056 NodeBuilder &Bldr, ExplodedNode *Pred) {
1092 void ExprEngine::VisitReturnStmt(const ReturnStmt *RS, ExplodedNode *Pred,
tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp 22 ExplodedNode *Pred,
39 ExplodedNode *Pred,
52 for (ExplodedNode *Pred : dstLocation) {
86 ExplodedNode *Pred,
151 ExplodedNode *Pred,
246 ExplodedNode *Pred = *DI;
tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp 162 static bool isPossiblyEscaped(const VarDecl *VD, ExplodedNode *N) {
200 ExplodedNode *Pred, unsigned &maxStep) {
231 bool madeNewBranch(ExplodedNode *N, const Stmt *LoopStmt) {
252 ExplodedNode *Pred, unsigned maxVisitOnPath) {
tools/clang/lib/StaticAnalyzer/Core/WorkList.cpp 150 const ExplodedNode *N = U.getNode();
231 const ExplodedNode *N = U.getNode();
293 const ExplodedNode *N = U.getNode();
usr/include/c++/7.4.0/type_traits 1983 { typedef _Up type; };