Home
last modified time | relevance | path

Searched refs:ExplodedNode (Results 1 – 25 of 75) sorted by relevance

123

/external/clang/include/clang/StaticAnalyzer/Core/PathSensitive/
DExprEngine.h144 void GenerateAutoTransition(ExplodedNode *N);
146 void GenerateCallExitNode(ExplodedNode *N);
153 void ViewGraph(ArrayRef<const ExplodedNode*> Nodes);
187 void removeDead(ExplodedNode *Node, ExplodedNodeSet &Out,
194 void processCFGElement(const CFGElement E, ExplodedNode *Pred,
197 void ProcessStmt(const CFGStmt S, ExplodedNode *Pred);
199 void ProcessInitializer(const CFGInitializer I, ExplodedNode *Pred);
201 void ProcessImplicitDtor(const CFGImplicitDtor D, ExplodedNode *Pred);
203 void ProcessNewAllocator(const CXXNewExpr *NE, ExplodedNode *Pred);
206 ExplodedNode *Pred, ExplodedNodeSet &Dst);
[all …]
DExplodedGraph.h54 class ExplodedNode : public llvm::FoldingSetNode {
84 ExplodedNode * const *begin() const;
86 ExplodedNode * const *end() const;
95 void addNode(ExplodedNode *N, ExplodedGraph &G);
102 void replaceNode(ExplodedNode *node);
125 explicit ExplodedNode(const ProgramPoint &loc, ProgramStateRef state, in ExplodedNode() function
176 void addPredecessor(ExplodedNode *V, ExplodedGraph &G);
189 ExplodedNode *getFirstPred() { in getFirstPred()
193 const ExplodedNode *getFirstPred() const { in getFirstPred()
194 return const_cast<ExplodedNode*>(this)->getFirstPred(); in getFirstPred()
[all …]
DCoreEngine.h52 typedef std::vector<std::pair<BlockEdge, const ExplodedNode*> >
55 typedef std::vector<std::pair<const CFGBlock*, const ExplodedNode*> >
89 ExplodedNode *Pred);
91 void HandleBlockEdge(const BlockEdge &E, ExplodedNode *Pred);
92 void HandleBlockEntrance(const BlockEntrance &E, ExplodedNode *Pred);
93 void HandleBlockExit(const CFGBlock *B, ExplodedNode *Pred);
94 void HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, ExplodedNode *Pred);
97 ExplodedNode *Pred);
99 const CFGBlock *B, ExplodedNode *Pred);
103 ExplodedNode *Pred);
[all …]
DCheckerContext.h73 ExplodedNode *Pred;
89 ExplodedNode *pred,
117 ExplodedNode *getPredecessor() { return Pred; } in getPredecessor()
187 static const MemRegion *getLocationRegionIfPostStore(const ExplodedNode *N) { in getLocationRegionIfPostStore()
208 ExplodedNode *addTransition(ProgramStateRef State = nullptr,
220 ExplodedNode *addTransition(ProgramStateRef State,
221 ExplodedNode *Pred,
229 ExplodedNode *generateSink(ProgramStateRef State, ExplodedNode *Pred,
241 ExplodedNode *generateErrorNode(ProgramStateRef State = nullptr,
254 ExplodedNode *
[all …]
DSubEngine.h32 class ExplodedNode; variable
56 virtual void processCFGElement(const CFGElement E, ExplodedNode* Pred,
64 ExplodedNode *Pred) = 0;
70 ExplodedNode *Pred,
80 ExplodedNode *Pred,
89 ExplodedNode *Pred,
105 ExplodedNode *Pred) = 0;
108 virtual void processCallEnter(CallEnter CE, ExplodedNode *Pred) = 0;
111 virtual void processCallExit(ExplodedNode *Pred) = 0;
DWorkList.h29 ExplodedNode *node;
35 WorkListUnit(ExplodedNode *N, BlockCounter C, in WorkListUnit()
42 explicit WorkListUnit(ExplodedNode *N, BlockCounter C) in WorkListUnit()
49 ExplodedNode *getNode() const { return node; } in getNode()
69 void enqueue(ExplodedNode *N, const CFGBlock *B, unsigned idx) { in enqueue()
73 void enqueue(ExplodedNode *N) { in enqueue()
/external/clang/include/clang/StaticAnalyzer/Core/BugReporter/
DBugReporterVisitor.h27 class ExplodedNode; variable
61 virtual PathDiagnosticPiece *VisitNode(const ExplodedNode *Succ,
62 const ExplodedNode *Pred,
73 getEndPath(BugReporterContext &BRC, const ExplodedNode *N, BugReport &BR);
79 getDefaultEndPath(BugReporterContext &BRC, const ExplodedNode *N,
123 PathDiagnosticPiece *VisitNode(const ExplodedNode *N,
124 const ExplodedNode *PrevN,
152 PathDiagnosticPiece *VisitNode(const ExplodedNode *N,
153 const ExplodedNode *PrevN,
159 bool isUnderconstrained(const ExplodedNode *N) const;
[all …]
DBugReporter.h41 class ExplodedNode; variable
61 virtual const ExplodedNode*
62 getOriginalNode(const ExplodedNode *N) = 0;
82 const ExplodedNode *ErrorNode;
146 BugReport(BugType& bt, StringRef desc, const ExplodedNode *errornode) in BugReport()
151 const ExplodedNode *errornode) in BugReport()
167 BugReport(BugType& bt, StringRef desc, const ExplodedNode *errornode, in BugReport()
180 const ExplodedNode *getErrorNode() const { return ErrorNode; } in getErrorNode()
/external/clang/lib/StaticAnalyzer/Core/
DExplodedGraph.cpp34 ExplodedNode::Auditor::~Auditor() {} in ~Auditor()
37 static ExplodedNode::Auditor* NodeAuditor = nullptr;
40 void ExplodedNode::SetAuditor(ExplodedNode::Auditor* A) { in SetAuditor()
67 bool ExplodedGraph::shouldCollect(const ExplodedNode *node) { in shouldCollect()
102 const ExplodedNode *pred = *(node->pred_begin()); in shouldCollect()
106 const ExplodedNode *succ = *(node->succ_begin()); in shouldCollect()
164 void ExplodedGraph::collectNode(ExplodedNode *node) { in collectNode()
170 ExplodedNode *pred = *(node->pred_begin()); in collectNode()
171 ExplodedNode *succ = *(node->succ_begin()); in collectNode()
177 node->~ExplodedNode(); in collectNode()
[all …]
DCoreEngine.cpp221 ExplodedNode *Node = WU.getNode(); in ExecuteWorkList()
229 void CoreEngine::dispatchWorkItem(ExplodedNode* Pred, ProgramPoint Loc, in dispatchWorkItem()
258 ExplodedNode *PNode = Pred->getFirstPred(); in dispatchWorkItem()
284 void CoreEngine::HandleBlockEdge(const BlockEdge &L, ExplodedNode *Pred) { in HandleBlockEdge()
324 ExplodedNode *Pred) { in HandleBlockEntrance()
343 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) { in HandleBlockExit()
460 const CFGBlock * B, ExplodedNode *Pred) { in HandleBranch()
472 ExplodedNode *Pred) { in HandleCleanupTemporaryBranch()
483 ExplodedNode *Pred) { in HandleStaticInit()
495 ExplodedNode *Pred) { in HandlePostStmt()
[all …]
DBugReporterVisitors.cpp85 const Stmt *bugreporter::GetDenomExpr(const ExplodedNode *N) { in GetDenomExpr()
92 const Stmt *bugreporter::GetRetValExpr(const ExplodedNode *N) { in GetRetValExpr()
105 const ExplodedNode *EndPathNode, BugReport &BR) { in getEndPath()
110 BugReporterContext &BRC, const ExplodedNode *EndPathNode, BugReport &BR) { in getDefaultEndPath()
167 static void addVisitorIfNecessary(const ExplodedNode *Node, const Stmt *S, in addVisitorIfNecessary()
230 PathDiagnosticPiece *visitNodeInitial(const ExplodedNode *N, in visitNodeInitial()
231 const ExplodedNode *PrevN, in visitNodeInitial()
329 PathDiagnosticPiece *visitNodeMaybeUnsuppress(const ExplodedNode *N, in visitNodeMaybeUnsuppress()
330 const ExplodedNode *PrevN, in visitNodeMaybeUnsuppress()
382 PathDiagnosticPiece *VisitNode(const ExplodedNode *N, in VisitNode()
[all …]
DExprEngineCallAndReturn.cpp40 void ExprEngine::processCallEnter(CallEnter CE, ExplodedNode *Pred) { in processCallEnter()
62 ExplodedNode *Node = G.getNode(Loc, state, false, &isNew); in processCallEnter()
71 const CFGBlock*> getLastStmt(const ExplodedNode *Node) { in getLastStmt()
160 ExplodedNode *Pred, in removeDeadOnEndOfFunction()
218 void ExprEngine::processCallExit(ExplodedNode *CEBNode) { in processCallExit()
288 ExplodedNode *BindedRetNode = G.getNode(Loc, state, false, &isNew); in processCallExit()
315 ExplodedNode *CEENode = G.getNode(Loc, CEEState, false, &isNew); in processCallExit()
417 NodeBuilder &Bldr, ExplodedNode *Pred, in REGISTER_TRAIT_WITH_PROGRAMSTATE()
452 if (ExplodedNode *N = G.getNode(Loc, State, false, &isNew)) { in REGISTER_TRAIT_WITH_PROGRAMSTATE()
483 void ExprEngine::VisitCallExpr(const CallExpr *CE, ExplodedNode *Pred, in VisitCallExpr()
[all …]
DExprEngine.cpp288 void ExprEngine::processCFGElement(const CFGElement E, ExplodedNode *Pred, in processCFGElement()
317 const ExplodedNode *Pred, in shouldRemoveDeadBindings()
342 void ExprEngine::removeDead(ExplodedNode *Pred, ExplodedNodeSet &Out, in removeDead()
425 ExplodedNode *Pred) { in ProcessStmt()
456 ExplodedNode *Pred) { in ProcessInitializer()
535 ExplodedNode *N = *I; in ProcessInitializer()
544 ExplodedNode *Pred) { in ProcessImplicitDtor()
571 ExplodedNode *Pred) { in ProcessNewAllocator()
590 ExplodedNode *Pred, in ProcessAutomaticObjDtor()
609 ExplodedNode *Pred, in ProcessDeleteDtor()
[all …]
DExprEngineCXX.cpp26 ExplodedNode *Pred, in CreateCXXTemporaryObject()
39 void ExprEngine::performTrivialCopy(NodeBuilder &Bldr, ExplodedNode *Pred, in performTrivialCopy()
108 ExplodedNode *Pred) { in getRegionForConstructedObject()
234 ExplodedNode *Pred, in VisitCXXConstructExpr()
359 ExplodedNode *Pred, in VisitCXXDestructor()
401 ExplodedNode *Pred, in VisitCXXNewAllocatorCall()
426 void ExprEngine::VisitCXXNewExpr(const CXXNewExpr *CNE, ExplodedNode *Pred, in VisitCXXNewExpr()
515 ExplodedNode *NewN = Bldr.generateNode(CNE, Pred, State); in VisitCXXNewExpr()
532 ExplodedNode *Pred, ExplodedNodeSet &Dst) { in VisitCXXDeleteExpr()
539 ExplodedNode *Pred, in VisitCXXCatchStmt()
[all …]
DExprEngineC.cpp23 ExplodedNode *Pred, in VisitBinaryOperator()
187 void ExprEngine::VisitBlockExpr(const BlockExpr *BE, ExplodedNode *Pred, in VisitBlockExpr()
250 ExplodedNode *Pred, ExplodedNodeSet &Dst) { in VisitCast()
258 ExplodedNode *subExprNode = *I; in VisitCast()
433 ExplodedNode *Pred, in VisitCompoundLiteralExpr()
465 void ExprEngine::VisitDeclStmt(const DeclStmt *DS, ExplodedNode *Pred, in VisitDeclStmt()
484 ExplodedNode *N = *I; in VisitDeclStmt()
492 ExplodedNode *UpdatedN = N; in VisitDeclStmt()
541 void ExprEngine::VisitLogicalExpr(const BinaryOperator* B, ExplodedNode *Pred, in VisitLogicalExpr()
549 ExplodedNode *N = Pred; in VisitLogicalExpr()
[all …]
DBugReporter.cpp57 static const Stmt *GetPreviousStmt(const ExplodedNode *N) { in GetPreviousStmt()
66 GetCurrentOrPreviousStmt(const ExplodedNode *N) { in GetCurrentOrPreviousStmt()
315 const ExplodedNode *getOriginalNode(const ExplodedNode *N) override { in getOriginalNode()
334 PathDiagnosticLocation ExecutionContinues(const ExplodedNode *N);
337 const ExplodedNode *N);
364 PathDiagnosticBuilder::ExecutionContinues(const ExplodedNode *N) { in ExecutionContinues()
374 const ExplodedNode *N) { in ExecutionContinues()
503 PathDiagnostic &PD, PathDiagnosticBuilder &PDB, const ExplodedNode *N, in GenerateVisitorsOnlyPathDiagnostic()
512 while (const ExplodedNode *Pred = N->getFirstPred()) { in GenerateVisitorsOnlyPathDiagnostic()
528 typedef std::pair<PathDiagnosticCallPiece*, const ExplodedNode*> StackDiagPair;
[all …]
DExprEngineObjC.cpp23 ExplodedNode *Pred, in VisitLvalObjCIvarRefExpr()
40 ExplodedNode *Pred, in VisitObjCAtSynchronizedStmt()
46 ExplodedNode *Pred, in VisitObjCForCollectionStmt()
136 ExplodedNode *Pred, in VisitObjCMessage()
226 ExplodedNode *Pred = *DI; in VisitObjCMessage()
/external/clang/lib/StaticAnalyzer/Checkers/
DMacOSKeychainAPIChecker.cpp103 const ExplodedNode *getAllocationNode(const ExplodedNode *N, SymbolRef Sym,
107 const AllocationPair &AP, ExplodedNode *N, CheckerContext &C) const;
146 PathDiagnosticPiece *VisitNode(const ExplodedNode *N,
147 const ExplodedNode *PrevN,
258 ExplodedNode *N = C.generateNonFatalErrorNode(State); in generateDeallocatorMismatchReport()
304 ExplodedNode *N = C.generateNonFatalErrorNode(State); in checkPreStmt()
367 ExplodedNode *N = C.generateNonFatalErrorNode(State); in checkPreStmt()
433 ExplodedNode *N = C.generateNonFatalErrorNode(State); in checkPreStmt()
496 const ExplodedNode *
497 MacOSKeychainAPIChecker::getAllocationNode(const ExplodedNode *N, in getAllocationNode()
[all …]
DNonNullParamChecker.cpp40 genReportNullAttrNonNull(const ExplodedNode *ErrorN, const Expr *ArgE) const;
42 genReportReferenceToNullPointer(const ExplodedNode *ErrorN,
146 if (ExplodedNode *errorNode = C.generateErrorNode(stateNull)) { in checkPreCall()
164 if (ExplodedNode *N = C.generateSink(stateNull, C.getPredecessor())) { in checkPreCall()
184 NonNullParamChecker::genReportNullAttrNonNull(const ExplodedNode *ErrorNode, in genReportNullAttrNonNull()
203 const ExplodedNode *ErrorNode, const Expr *ArgE) const { in genReportReferenceToNullPointer()
DExprInspectionChecker.cpp67 ExplodedNode *N = C.getPredecessor(); in getArgumentValueString()
106 ExplodedNode *N = C.generateNonFatalErrorNode(); in analyzerEval()
119 ExplodedNode *N = C.generateNonFatalErrorNode(); in analyzerWarnIfReached()
140 ExplodedNode *N = C.generateNonFatalErrorNode(); in analyzerCheckInlined()
173 ExplodedNode *N = C.generateNonFatalErrorNode(); in checkDeadSymbols()
DNullabilityChecker.cpp157 PathDiagnosticPiece *VisitNode(const ExplodedNode *N,
158 const ExplodedNode *PrevN,
172 void reportBugIfPreconditionHolds(ErrorKind Error, ExplodedNode *N,
177 void reportBug(ErrorKind Error, ExplodedNode *N, const MemRegion *Region, in reportBug()
281 const ExplodedNode *N, const ExplodedNode *PrevN, BugReporterContext &BRC, in VisitNode()
359 static bool checkPreconditionViolation(ProgramStateRef State, ExplodedNode *N, in checkPreconditionViolation()
392 ErrorKind Error, ExplodedNode *N, const MemRegion *Region, in reportBugIfPreconditionHolds()
502 ExplodedNode *N = C.generateErrorNode(State, &Tag); in checkPreStmt()
523 ExplodedNode *N = C.addTransition(State, C.getPredecessor(), &Tag); in checkPreStmt()
574 ExplodedNode *N = C.generateErrorNode(State); in checkPreCall()
[all …]
DCallAndMessageChecker.cpp81 ExplodedNode *N) const;
100 ExplodedNode *N = C.generateErrorNode(); in emitBadCall()
172 if (ExplodedNode *N = C.generateErrorNode()) { in uninitRefOrPointer()
203 if (ExplodedNode *N = C.generateErrorNode()) { in PreVisitProcessArg()
268 if (ExplodedNode *N = C.generateErrorNode()) { in PreVisitProcessArg()
341 ExplodedNode *N = C.generateErrorNode(); in checkPreStmt()
398 ExplodedNode *N = C.generateErrorNode(); in checkPreCall()
446 if (ExplodedNode *N = C.generateErrorNode()) { in checkPreObjCMessage()
491 ExplodedNode *N) const { in emitNilReceiverBug()
563 if (ExplodedNode *N = C.generateErrorNode(state, &Tag)) in HandleNilReceiver()
DDynamicTypePropagation.cpp65 ExplodedNode *dynamicTypePropagationOnCasts(const CastExpr *CE,
86 PathDiagnosticPiece *VisitNode(const ExplodedNode *N,
87 const ExplodedNode *PrevN,
97 const ObjCObjectPointerType *To, ExplodedNode *N,
277 ExplodedNode *DynamicTypePropagation::dynamicTypePropagationOnCasts( in dynamicTypePropagationOnCasts()
512 ExplodedNode *AfterTypeProp = dynamicTypePropagationOnCasts(CE, State, C); in checkPostStmt()
565 ExplodedNode *N = C.addTransition(State, AfterTypeProp, &IllegalConv); in checkPostStmt()
746 ExplodedNode *N = C.addTransition(State, &Tag); in checkPreObjCMessage()
821 ExplodedNode *Pred = C.getPredecessor(); in checkPostObjCMessage()
849 ExplodedNode *N, SymbolRef Sym, CheckerContext &C, in reportGenericsBug()
[all …]
DPthreadLockChecker.cpp145 ExplodedNode *N = C.generateErrorNode(); in AcquireLock()
207 ExplodedNode *N = C.generateErrorNode(); in ReleaseLock()
230 ExplodedNode *N = C.generateErrorNode(); in ReleaseLock()
275 ExplodedNode *N = C.generateErrorNode(); in DestroyLock()
310 ExplodedNode *N = C.generateErrorNode(); in InitLock()
323 ExplodedNode *N = C.generateErrorNode(); in reportUseDestroyedBug()
/external/clang/lib/StaticAnalyzer/Frontend/
DAnalysisConsumer.cpp57 static std::unique_ptr<ExplodedNode::Auditor> CreateUbiViz();
656 std::unique_ptr<ExplodedNode::Auditor> Auditor; in ActionExprEngine()
659 ExplodedNode::SetAuditor(Auditor.get()); in ActionExprEngine()
668 ExplodedNode::SetAuditor(nullptr); in ActionExprEngine()
722 class UbigraphViz : public ExplodedNode::Auditor {
735 void AddEdge(ExplodedNode *Src, ExplodedNode *Dst) override;
740 static std::unique_ptr<ExplodedNode::Auditor> CreateUbiViz() { in CreateUbiViz()
751 void UbigraphViz::AddEdge(ExplodedNode *Src, ExplodedNode *Dst) { in AddEdge()

123