Home
last modified time | relevance | path

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

123

/external/clang/include/clang/StaticAnalyzer/Core/PathSensitive/
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
131 ~ExplodedNode() {} in ~ExplodedNode()
175 void addPredecessor(ExplodedNode *V, ExplodedGraph &G);
188 ExplodedNode *getFirstPred() { in getFirstPred()
192 const ExplodedNode *getFirstPred() const { in getFirstPred()
[all …]
DExprEngine.h67 ExplodedNode *EntryNode;
141 void GenerateAutoTransition(ExplodedNode *N);
143 void GenerateCallExitNode(ExplodedNode *N);
149 void ViewGraph(ExplodedNode** Beg, ExplodedNode** End);
172 void removeDead(ExplodedNode *Node, ExplodedNodeSet &Out,
179 void processCFGElement(const CFGElement E, ExplodedNode *Pred,
182 void ProcessStmt(const CFGStmt S, ExplodedNode *Pred);
184 void ProcessInitializer(const CFGInitializer I, ExplodedNode *Pred);
186 void ProcessImplicitDtor(const CFGImplicitDtor D, ExplodedNode *Pred);
189 ExplodedNode *Pred, ExplodedNodeSet &Dst);
[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);
103 ExplodedNode *generateCallExitBeginNode(ExplodedNode *N);
133 void dispatchWorkItem(ExplodedNode* Pred, ProgramPoint Loc,
[all …]
DCheckerContext.h26 ExplodedNode *Pred;
42 ExplodedNode *pred,
74 ExplodedNode *getPredecessor() { return Pred; } in getPredecessor()
141 static const MemRegion *getLocationRegionIfPostStore(const ExplodedNode *N) { in getLocationRegionIfPostStore()
162 ExplodedNode *addTransition(ProgramStateRef State = 0,
174 ExplodedNode *addTransition(ProgramStateRef State,
175 ExplodedNode *Pred,
182 ExplodedNode *generateSink(ProgramStateRef State = 0,
183 ExplodedNode *Pred = 0,
224 ExplodedNode *addTransitionImpl(ProgramStateRef State,
[all …]
DWorkList.h27 class ExplodedNode; variable
31 ExplodedNode *node;
37 WorkListUnit(ExplodedNode *N, BlockCounter C, in WorkListUnit()
44 explicit WorkListUnit(ExplodedNode *N, BlockCounter C) in WorkListUnit()
51 ExplodedNode *getNode() const { return node; } in getNode()
71 void enqueue(ExplodedNode *N, const CFGBlock *B, unsigned idx) { in enqueue()
75 void enqueue(ExplodedNode *N) { in enqueue()
DSubEngine.h32 class ExplodedNode; variable
56 virtual void processCFGElement(const CFGElement E, ExplodedNode* Pred,
69 ExplodedNode *Pred,
87 virtual void processCallEnter(CallEnter CE, ExplodedNode *Pred) = 0;
90 virtual void processCallExit(ExplodedNode *Pred) = 0;
/external/clang/lib/StaticAnalyzer/Core/
DExplodedGraph.cpp34 ExplodedNode::Auditor::~Auditor() {} in ~Auditor()
37 static ExplodedNode::Auditor* NodeAuditor = 0;
40 void ExplodedNode::SetAuditor(ExplodedNode::Auditor* A) { in SetAuditor()
61 bool ExplodedGraph::shouldCollect(const ExplodedNode *node) { in shouldCollect()
80 const ExplodedNode *pred = *(node->pred_begin()); in shouldCollect()
84 const ExplodedNode *succ = *(node->succ_begin()); in shouldCollect()
127 void ExplodedGraph::collectNode(ExplodedNode *node) { in collectNode()
133 ExplodedNode *pred = *(node->pred_begin()); in collectNode()
134 ExplodedNode *succ = *(node->succ_begin()); in collectNode()
140 node->~ExplodedNode(); in collectNode()
[all …]
DCoreEngine.cpp220 ExplodedNode *Node = WU.getNode(); in ExecuteWorkList()
228 void CoreEngine::dispatchWorkItem(ExplodedNode* Pred, ProgramPoint Loc, in dispatchWorkItem()
257 ExplodedNode *PNode = Pred->getFirstPred(); in dispatchWorkItem()
283 void CoreEngine::HandleBlockEdge(const BlockEdge &L, ExplodedNode *Pred) { in HandleBlockEdge()
323 ExplodedNode *Pred) { in HandleBlockEntrance()
342 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) { in HandleBlockExit()
449 const CFGBlock * B, ExplodedNode *Pred) { in HandleBranch()
460 ExplodedNode *Pred) { in HandlePostStmt()
476 ExplodedNode *Pred) { in generateNode()
479 ExplodedNode *Node = G->getNode(Loc, State, false, &IsNew); in generateNode()
[all …]
DBugReporterVisitors.cpp41 const Stmt *bugreporter::GetDerefExpr(const ExplodedNode *N) { in GetDerefExpr()
77 const Stmt *bugreporter::GetDenomExpr(const ExplodedNode *N) { in GetDenomExpr()
84 const Stmt *bugreporter::GetRetValExpr(const ExplodedNode *N) { in GetRetValExpr()
97 const ExplodedNode *EndPathNode, in getEndPath()
104 const ExplodedNode *EndPathNode, in getDefaultEndPath()
152 static void addVisitorIfNecessary(const ExplodedNode *Node, const Stmt *S, in addVisitorIfNecessary()
181 PathDiagnosticPiece *VisitNode(const ExplodedNode *N, in VisitNode()
182 const ExplodedNode *PrevN, in VisitNode()
258 PathDiagnosticPiece *FindLastStoreBRVisitor::VisitNode(const ExplodedNode *Succ, in VisitNode()
259 const ExplodedNode *Pred, in VisitNode()
[all …]
DBugReporter.cpp59 static inline const ExplodedNode*
60 GetPredecessorNode(const ExplodedNode *N) { in GetPredecessorNode()
64 static inline const ExplodedNode*
65 GetSuccessorNode(const ExplodedNode *N) { in GetSuccessorNode()
69 static const Stmt *GetPreviousStmt(const ExplodedNode *N) { in GetPreviousStmt()
77 static const Stmt *GetNextStmt(const ExplodedNode *N) { in GetNextStmt()
102 GetCurrentOrPreviousStmt(const ExplodedNode *N) { in GetCurrentOrPreviousStmt()
110 GetCurrentOrNextStmt(const ExplodedNode *N) { in GetCurrentOrNextStmt()
178 typedef llvm::DenseMap<const ExplodedNode*,
179 const ExplodedNode*> NodeBackMap;
[all …]
DExprEngineCallAndReturn.cpp35 void ExprEngine::processCallEnter(CallEnter CE, ExplodedNode *Pred) { in processCallEnter()
55 ExplodedNode *Node = G.getNode(Loc, state, false, &isNew); in processCallEnter()
64 const CFGBlock*> getLastStmt(const ExplodedNode *Node) { in getLastStmt()
129 void ExprEngine::processCallExit(ExplodedNode *CEBNode) { in processCallExit()
183 ExplodedNode *BindedRetNode = G.getNode(Loc, state, false, &isNew); in processCallExit()
209 ExplodedNode *CEENode = G.getNode(Loc, CEEState, false, &isNew); in processCallExit()
276 bool ExprEngine::shouldInlineDecl(const Decl *D, ExplodedNode *Pred) { in shouldInlineDecl()
350 NodeBuilder &Bldr, ExplodedNode *Pred, in inlineCall()
472 if (ExplodedNode *N = G.getNode(Loc, State, false, &isNew)) { in inlineCall()
503 void ExprEngine::VisitCallExpr(const CallExpr *CE, ExplodedNode *Pred, in VisitCallExpr()
[all …]
DExprEngine.cpp202 void ExprEngine::processCFGElement(const CFGElement E, ExplodedNode *Pred, in processCFGElement()
228 const ExplodedNode *Pred, in shouldRemoveDeadBindings()
253 void ExprEngine::removeDead(ExplodedNode *Pred, ExplodedNodeSet &Out, in removeDead()
319 ExplodedNode *Pred) { in ProcessStmt()
357 ExplodedNode *Pred) { in ProcessInitializer()
403 ExplodedNode *N = *I; in ProcessInitializer()
412 ExplodedNode *Pred) { in ProcessImplicitDtor()
436 ExplodedNode *Pred, in ProcessAutomaticObjDtor()
453 ExplodedNode *Pred, ExplodedNodeSet &Dst) { in ProcessBaseDtor()
471 ExplodedNode *Pred, ExplodedNodeSet &Dst) { in ProcessMemberDtor()
[all …]
DExprEngineCXX.cpp26 ExplodedNode *Pred, in CreateCXXTemporaryObject()
53 ExplodedNode *Pred, in VisitCXXConstructExpr()
167 ExplodedNode *Pred, in VisitCXXDestructor()
208 void ExprEngine::VisitCXXNewExpr(const CXXNewExpr *CNE, ExplodedNode *Pred, in VisitCXXNewExpr()
277 ExplodedNode *Pred, ExplodedNodeSet &Dst) { in VisitCXXDeleteExpr()
284 ExplodedNode *Pred, in VisitCXXCatchStmt()
302 void ExprEngine::VisitCXXThisExpr(const CXXThisExpr *TE, ExplodedNode *Pred, in VisitCXXThisExpr()
DExprEngineC.cpp22 ExplodedNode *Pred, in VisitBinaryOperator()
177 void ExprEngine::VisitBlockExpr(const BlockExpr *BE, ExplodedNode *Pred, in VisitBlockExpr()
217 ExplodedNode *Pred, ExplodedNodeSet &Dst) { in VisitCast()
225 ExplodedNode *subExprNode = *I; in VisitCast()
398 ExplodedNode *Pred, in VisitCompoundLiteralExpr()
424 void ExprEngine::VisitDeclStmt(const DeclStmt *DS, ExplodedNode *Pred, in VisitDeclStmt()
448 ExplodedNode *N = *I; in VisitDeclStmt()
495 void ExprEngine::VisitLogicalExpr(const BinaryOperator* B, ExplodedNode *Pred, in VisitLogicalExpr()
503 ExplodedNode *N = Pred; in VisitLogicalExpr()
561 ExplodedNode *Pred, in VisitInitListExpr()
[all …]
DExprEngineObjC.cpp23 ExplodedNode *Pred, in VisitLvalObjCIvarRefExpr()
40 ExplodedNode *Pred, in VisitObjCAtSynchronizedStmt()
46 ExplodedNode *Pred, in VisitObjCForCollectionStmt()
144 ExplodedNode *Pred, in VisitObjCMessage()
164 ExplodedNode *Pred = *DI; in VisitObjCMessage()
DCheckerManager.cpp154 NodeBuilder &Bldr, ExplodedNode *Pred) { in runChecker()
196 NodeBuilder &Bldr, ExplodedNode *Pred) { in runChecker()
239 NodeBuilder &Bldr, ExplodedNode *Pred) { in runChecker()
283 NodeBuilder &Bldr, ExplodedNode *Pred) { in runChecker()
328 NodeBuilder &Bldr, ExplodedNode *Pred) { in runChecker()
360 ExplodedNode *Pred = BC.Pred; in runCheckersForEndPath()
392 NodeBuilder &Bldr, ExplodedNode *Pred) { in runChecker()
404 ExplodedNode *Pred, in runCheckersForBranchCondition()
437 NodeBuilder &Bldr, ExplodedNode *Pred) { in runChecker()
512 ExplodedNode *Pred = *NI; in runCheckersForEvalCall()
/external/clang/include/clang/StaticAnalyzer/Core/BugReporter/
DBugReporterVisitor.h27 class ExplodedNode; variable
58 virtual PathDiagnosticPiece *VisitNode(const ExplodedNode *N,
59 const ExplodedNode *PrevN,
70 const ExplodedNode *N,
77 const ExplodedNode *N,
108 static BugReporterVisitor *createVisitorObject(const ExplodedNode *N,
125 PathDiagnosticPiece *VisitNode(const ExplodedNode *N,
126 const ExplodedNode *PrevN,
144 PathDiagnosticPiece *VisitNode(const ExplodedNode *N,
145 const ExplodedNode *PrevN,
[all …]
DBugReporter.h39 class ExplodedNode; variable
59 virtual const ExplodedNode*
60 getOriginalNode(const ExplodedNode *N) = 0;
78 const ExplodedNode *ErrorNode;
129 BugReport(BugType& bt, StringRef desc, const ExplodedNode *errornode) in BugReport()
134 const ExplodedNode *errornode) in BugReport()
151 BugReport(BugType& bt, StringRef desc, const ExplodedNode *errornode, in BugReport()
162 const ExplodedNode *getErrorNode() const { return ErrorNode; } in getErrorNode()
/external/clang/lib/StaticAnalyzer/Checkers/
DMacOSKeychainAPIChecker.cpp105 const Stmt *getAllocationSite(const ExplodedNode *N, SymbolRef Sym,
109 ExplodedNode *N,
150 PathDiagnosticPiece *VisitNode(const ExplodedNode *N,
151 const ExplodedNode *PrevN,
269 ExplodedNode *N = C.addTransition(State); in generateDeallocatorMismatchReport()
311 ExplodedNode *N = C.addTransition(State); in checkPreStmt()
370 ExplodedNode *N = C.addTransition(State); in checkPreStmt()
434 ExplodedNode *N = C.addTransition(State); in checkPreStmt()
520 MacOSKeychainAPIChecker::getAllocationSite(const ExplodedNode *N, in getAllocationSite()
526 const ExplodedNode *AllocNode = N; in getAllocationSite()
[all …]
DOSAtomicChecker.cpp28 ExplodedNode *Pred, ExplodedNodeSet &Dst) const;
33 ExplodedNode *Pred,
54 ExplodedNode *Pred, in inlineCall()
72 ExplodedNode *Pred, in evalOSAtomicCompareAndSwap()
135 ExplodedNode *N = *I; in evalOSAtomicCompareAndSwap()
188 ExplodedNode *predNew = *I2; in evalOSAtomicCompareAndSwap()
DExprInspectionChecker.cpp55 ExplodedNode *N = C.getPredecessor(); in getArgumentValueString()
84 ExplodedNode *N = C.getPredecessor(); in analyzerEval()
101 ExplodedNode *N = C.getPredecessor(); in analyzerCheckInlined()
DRetainCountChecker.cpp1643 typedef llvm::DenseMap<const ExplodedNode *, const RetainSummary *>
1755 virtual PathDiagnosticPiece *VisitNode(const ExplodedNode *N,
1756 const ExplodedNode *PrevN,
1761 const ExplodedNode *N,
1772 const ExplodedNode *N,
1790 const SummaryLogTy &Log, ExplodedNode *n, SymbolRef sym, in CFRefReport()
1799 const SummaryLogTy &Log, ExplodedNode *n, SymbolRef sym, in CFRefReport()
1820 const SummaryLogTy &Log, ExplodedNode *n, SymbolRef sym,
1882 PathDiagnosticPiece *CFRefReportVisitor::VisitNode(const ExplodedNode *N, in VisitNode()
1883 const ExplodedNode *PrevN, in VisitNode()
[all …]
DCallAndMessageChecker.cpp56 ExplodedNode *N) const;
71 ExplodedNode *N = C.generateSink(); in emitBadCall()
116 if (ExplodedNode *N = C.generateSink()) { in PreVisitProcessArg()
182 if (ExplodedNode *N = C.generateSink()) { in PreVisitProcessArg()
306 if (ExplodedNode *N = C.generateSink()) { in checkPreObjCMessage()
360 ExplodedNode *N) const { in emitNilReceiverBug()
423 if (ExplodedNode *N = C.generateSink(state)) in HandleNilReceiver()
DObjCAtSyncChecker.cpp46 if (ExplodedNode *N = C.generateSink()) { in checkPreStmt()
69 if (ExplodedNode *N = C.addTransition(nullState)) { in checkPreStmt()
/external/clang/lib/StaticAnalyzer/Frontend/
DAnalysisConsumer.cpp54 static ExplodedNode::Auditor* CreateUbiViz();
590 OwningPtr<ExplodedNode::Auditor> Auditor; in ActionExprEngine()
593 ExplodedNode::SetAuditor(Auditor.get()); in ActionExprEngine()
602 ExplodedNode::SetAuditor(0); in ActionExprEngine()
651 class UbigraphViz : public ExplodedNode::Auditor {
665 virtual void AddEdge(ExplodedNode *Src, ExplodedNode *Dst);
670 static ExplodedNode::Auditor* CreateUbiViz() { in CreateUbiViz()
695 void UbigraphViz::AddEdge(ExplodedNode *Src, ExplodedNode *Dst) { in AddEdge()

123