/external/clang/include/clang/Analysis/Analyses/ |
D | Dominators.h | 32 class CFGBlock; variable 33 typedef llvm::DomTreeNodeBase<CFGBlock> DomTreeNode; 41 llvm::DominatorTreeBase<CFGBlock>* DT; 44 DT = new llvm::DominatorTreeBase<CFGBlock>(false); in DominatorTree() 51 llvm::DominatorTreeBase<CFGBlock>& getBase() { return *DT; } in getBase() 55 inline CFGBlock *getRoot() const { in getRoot() 111 inline bool dominates(const CFGBlock* A, const CFGBlock* B) const { in dominates() 118 bool properlyDominates(const CFGBlock*A, const CFGBlock*B) const { in properlyDominates() 125 inline CFGBlock *findNearestCommonDominator(CFGBlock *A, CFGBlock *B) { in findNearestCommonDominator() 129 inline const CFGBlock *findNearestCommonDominator(const CFGBlock *A, in findNearestCommonDominator() [all …]
|
D | ThreadSafetyCommon.h | 42 void enterCFG(CFG *Cfg, const NamedDecl *D, const CFGBlock *First) {} in enterCFG() 45 void enterCFGBlock(const CFGBlock *B) {} in enterCFGBlock() 51 void handlePredecessor(const CFGBlock *Pred) {} in handlePredecessor() 54 void handlePredecessorBackEdge(const CFGBlock *Pred) {} in handlePredecessorBackEdge() 57 void enterCFGBlockBody(const CFGBlock *B) {} in enterCFGBlockBody() 66 void exitCFGBlockBody(const CFGBlock *B) {} in exitCFGBlockBody() 72 void handleSuccessor(const CFGBlock *Succ) {} in handleSuccessor() 75 void handleSuccessorBackEdge(const CFGBlock *Succ) {} in handleSuccessorBackEdge() 78 void exitCFGBlock(const CFGBlock *B) {} in exitCFGBlock() 81 void exitCFG(const CFGBlock *Last) {} in exitCFG() [all …]
|
D | PostOrderCFGView.h | 43 struct iterator { typedef const CFGBlock *value_type; }; 50 bool insert(const CFGBlock *Block) { in insert() 66 bool alreadySet(const CFGBlock *Block) { in alreadySet() 73 std::vector<const CFGBlock*> Blocks; 75 typedef llvm::DenseMap<const CFGBlock *, unsigned> BlockOrderTy; 79 typedef std::vector<const CFGBlock *>::reverse_iterator iterator; 80 typedef std::vector<const CFGBlock *>::const_reverse_iterator const_iterator; 99 bool operator()(const CFGBlock *b1, const CFGBlock *b2) const;
|
D | Consumed.h | 167 void intersectAtLoopHead(const CFGBlock *LoopHead, const CFGBlock *LoopBack, 215 bool allBackEdgesVisited(const CFGBlock *CurrBlock, 216 const CFGBlock *TargetBlock); 218 void addInfo(const CFGBlock *Block, ConsumedStateMap *StateMap, 220 void addInfo(const CFGBlock *Block, ConsumedStateMap *StateMap); 222 ConsumedStateMap* borrowInfo(const CFGBlock *Block); 224 void discardInfo(const CFGBlock *Block); 226 ConsumedStateMap* getInfo(const CFGBlock *Block); 228 bool isBackEdge(const CFGBlock *From, const CFGBlock *To); 229 bool isBackEdgeTarget(const CFGBlock *Block); [all …]
|
D | CFGReachabilityAnalysis.h | 25 class CFGBlock; variable 41 bool isReachable(const CFGBlock *Src, const CFGBlock *Dst); 44 void mapReachability(const CFGBlock *Dst);
|
D | LiveVariables.h | 25 class CFGBlock; variable 63 const CFGBlock *currentBlock, in observeStmt() 80 bool isLive(const CFGBlock *B, const VarDecl *D);
|
/external/clang/lib/Analysis/ |
D | CFG.cpp | 211 BlockScopePosPair(CFGBlock *b, LocalScope::const_iterator scopePos) in BlockScopePosPair() 214 CFGBlock *block; 296 CFGBlock *Block; 297 CFGBlock *Succ; 300 CFGBlock *SwitchTerminatedBlock; 301 CFGBlock *DefaultCaseBlock; 302 CFGBlock *TryTerminatedBlock; 352 CFGBlock *VisitAddrLabelExpr(AddrLabelExpr *A, AddStmtChoice asc); 353 CFGBlock *VisitBinaryOperator(BinaryOperator *B, AddStmtChoice asc); 354 CFGBlock *VisitBreakStmt(BreakStmt *B); [all …]
|
D | ReachableCode.cpp | 49 static bool isTrivialDoWhile(const CFGBlock *B, const Stmt *S) { in isTrivialDoWhile() 61 static bool isDeadReturn(const CFGBlock *B, const Stmt *S) { in isDeadReturn() 65 const CFGBlock *Current = B; in isDeadReturn() 67 for (CFGBlock::const_reverse_iterator I = Current->rbegin(), in isDeadReturn() 252 static bool shouldTreatSuccessorsAsReachable(const CFGBlock *B, in shouldTreatSuccessorsAsReachable() 267 static unsigned scanFromBlock(const CFGBlock *Start, in scanFromBlock() 274 SmallVector<const CFGBlock*, 32> WL; in scanFromBlock() 287 const CFGBlock *item = WL.pop_back_val(); in scanFromBlock() 299 for (CFGBlock::const_succ_iterator I = item->succ_begin(), in scanFromBlock() 301 const CFGBlock *B = *I; in scanFromBlock() [all …]
|
D | UninitializedValues.cpp | 117 ValueVector &getValueVector(const CFGBlock *block) { in getValueVector() 123 bool updateValueVectorWithScratch(const CFGBlock *block); 133 Value getValue(const CFGBlock *block, const CFGBlock *dstBlock, in getValue() 157 static void printVector(const CFGBlock *block, ValueVector &bv, in printVector() 180 bool CFGBlockValues::updateValueVectorWithScratch(const CFGBlock *block) { in updateValueVectorWithScratch() 208 SmallVector<const CFGBlock *, 20> worklist; 222 void enqueueSuccessors(const CFGBlock *block); 223 const CFGBlock *dequeue(); 227 void DataflowWorklist::enqueueSuccessors(const clang::CFGBlock *block) { in enqueueSuccessors() 228 for (CFGBlock::const_succ_iterator I = block->succ_begin(), in enqueueSuccessors() [all …]
|
D | CFGReachabilityAnalysis.cpp | 25 bool CFGReverseBlockReachabilityAnalysis::isReachable(const CFGBlock *Src, in isReachable() 26 const CFGBlock *Dst) { in isReachable() 42 void CFGReverseBlockReachabilityAnalysis::mapReachability(const CFGBlock *Dst) { in mapReachability() 43 SmallVector<const CFGBlock *, 11> worklist; in mapReachability() 55 const CFGBlock *block = worklist.pop_back_val(); in mapReachability() 70 for (CFGBlock::const_pred_iterator i = block->pred_begin(), in mapReachability()
|
D | LiveVariables.cpp | 31 SmallVector<const CFGBlock *, 20> worklist; 39 void enqueueBlock(const CFGBlock *block); 40 void enqueuePredecessors(const CFGBlock *block); 42 const CFGBlock *dequeue(); 49 void DataflowWorklist::enqueueBlock(const clang::CFGBlock *block) { in enqueueBlock() 56 void DataflowWorklist::enqueuePredecessors(const clang::CFGBlock *block) { in enqueuePredecessors() 58 for (CFGBlock::const_pred_iterator I = block->pred_begin(), in enqueuePredecessors() 73 const CFGBlock *DataflowWorklist::dequeue() { in dequeue() 76 const CFGBlock *b = worklist.pop_back_val(); in dequeue() 88 llvm::DenseMap<const CFGBlock *, LiveVariables::LivenessValues> blocksEndToLiveness; [all …]
|
D | CFGStmtMap.cpp | 22 typedef llvm::DenseMap<const Stmt*, CFGBlock*> SMap; 27 CFGBlock *CFGStmtMap::getBlock(Stmt *S) { in getBlock() 36 CFGBlock *B = I->second; in getBlock() 49 static void Accumulate(SMap &SM, CFGBlock *B) { in Accumulate() 51 for (CFGBlock::iterator I = B->begin(), E = B->end(); I != E; ++I) { in Accumulate() 57 CFGBlock *&Entry = SM[CS->getStmt()]; in Accumulate()
|
D | Consumed.cpp | 57 static SourceLocation getFirstStmtLoc(const CFGBlock *Block) { in getFirstStmtLoc() 72 static SourceLocation getLastStmtLoc(const CFGBlock *Block) { in getLastStmtLoc() 78 for (CFGBlock::const_reverse_iterator BI = Block->rbegin(), in getLastStmtLoc() 1027 bool ConsumedBlockInfo::allBackEdgesVisited(const CFGBlock *CurrBlock, in allBackEdgesVisited() 1028 const CFGBlock *TargetBlock) { in allBackEdgesVisited() 1034 for (CFGBlock::const_pred_iterator PI = TargetBlock->pred_begin(), in allBackEdgesVisited() 1042 void ConsumedBlockInfo::addInfo(const CFGBlock *Block, in addInfo() 1062 void ConsumedBlockInfo::addInfo(const CFGBlock *Block, in addInfo() 1078 ConsumedStateMap* ConsumedBlockInfo::borrowInfo(const CFGBlock *Block) { in borrowInfo() 1085 void ConsumedBlockInfo::discardInfo(const CFGBlock *Block) { in discardInfo() [all …]
|
/external/clang/include/clang/Analysis/ |
D | CFG.h | 354 class CFGBlock { 429 CFGBlock *ReachableBlock; 430 llvm::PointerIntPair<CFGBlock*, 2> UnreachableBlock; 434 AdjacentBlock(CFGBlock *B, bool IsReachable); 438 AdjacentBlock(CFGBlock *B, CFGBlock *AlternateBlock); 441 CFGBlock *getReachableBlock() const { in getReachableBlock() 446 CFGBlock *getPossiblyUnreachableBlock() const { in getPossiblyUnreachableBlock() 452 operator CFGBlock*() const { 456 CFGBlock& operator *() const { 460 CFGBlock* operator ->() const { [all …]
|
D | CFGStmtMap.h | 23 class CFGBlock; variable 44 CFGBlock *getBlock(Stmt * S); 46 const CFGBlock *getBlock(const Stmt * S) const { in getBlock()
|
D | AnalysisContext.h | 129 const CFGBlock *getBlockForRegisteredExpression(const Stmt *stmt); 176 const CFGBlock *Blk, 270 const CFGBlock *Block; 277 const Stmt *s, const CFGBlock *blk, in StackFrameContext() 287 const CFGBlock *getCallSiteBlock() const { return Block; } in getCallSiteBlock() 298 const CFGBlock *blk, unsigned idx) { in Profile() 374 const CFGBlock *blk, unsigned idx); 434 const CFGBlock *Blk, in getStackFrame() 449 const CFGBlock *Blk, in getStackFrame()
|
D | ProgramPoint.h | 195 BlockEntrance(const CFGBlock *B, const LocationContext *L, 201 const CFGBlock *getBlock() const { in getBlock() 202 return reinterpret_cast<const CFGBlock*>(getData1()); in getBlock() 206 const CFGBlock *B = getBlock(); in getFirstElement() 220 BlockExit(const CFGBlock *B, const LocationContext *L) in BlockExit() 223 const CFGBlock *getBlock() const { in getBlock() 224 return reinterpret_cast<const CFGBlock*>(getData1()); in getBlock() 450 BlockEdge(const CFGBlock *B1, const CFGBlock *B2, const LocationContext *L) in BlockEdge() 456 const CFGBlock *getSrc() const { in getSrc() 457 return static_cast<const CFGBlock*>(getData1()); in getSrc() [all …]
|
/external/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ |
D | CoreEngine.h | 55 typedef std::vector<std::pair<const CFGBlock*, const ExplodedNode*> > 93 void HandleBlockExit(const CFGBlock *B, ExplodedNode *Pred); 94 void HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, ExplodedNode *Pred); 96 void HandleBranch(const Stmt *Cond, const Stmt *Term, const CFGBlock *B, 100 void HandleStaticInit(const DeclStmt *DS, const CFGBlock *B, 149 void addAbortedBlock(const ExplodedNode *node, const CFGBlock *block) { in addAbortedBlock() 173 void enqueue(ExplodedNodeSet &Set, const CFGBlock *Block, unsigned Idx); 180 void enqueueStmtNode(ExplodedNode *N, const CFGBlock *Block, unsigned Idx); 186 const CFGBlock *Block; 188 NodeBuilderContext(const CoreEngine &E, const CFGBlock *B, ExplodedNode *N) in NodeBuilderContext() [all …]
|
D | WorkList.h | 24 class CFGBlock; variable 31 const CFGBlock *block; 36 const CFGBlock *B, unsigned idx) in WorkListUnit() 55 const CFGBlock *getBlock() const { return block; } in getBlock() 69 void enqueue(ExplodedNode *N, const CFGBlock *B, unsigned idx) { in enqueue()
|
D | SubEngine.h | 22 class CFGBlock; variable 72 const CFGBlock *DstT, 73 const CFGBlock *DstF) = 0; 81 const CFGBlock *DstT, 82 const CFGBlock *DstF) = 0;
|
/external/clang/lib/StaticAnalyzer/Checkers/ |
D | UnreachableCodeChecker.cpp | 44 static inline const Stmt *getUnreachableStmt(const CFGBlock *CB); 45 static void FindUnreachableEntryPoints(const CFGBlock *CB, 48 static bool isInvalidPath(const CFGBlock *CB, const ParentMap &PM); 49 static inline bool isEmptyCFGBlock(const CFGBlock *CB); 83 const CFGBlock *CB = BE->getBlock(); in checkEndAnalysis() 101 const CFGBlock *CB = *I; in checkEndAnalysis() 135 for (CFGBlock::const_iterator ci = CB->begin(), ce = CB->end(); in checkEndAnalysis() 174 void UnreachableCodeChecker::FindUnreachableEntryPoints(const CFGBlock *CB, in FindUnreachableEntryPoints() 179 for (CFGBlock::const_pred_iterator I = CB->pred_begin(), E = CB->pred_end(); in FindUnreachableEntryPoints() 196 const Stmt *UnreachableCodeChecker::getUnreachableStmt(const CFGBlock *CB) { in getUnreachableStmt() [all …]
|
D | AnalyzerStatsChecker.cpp | 46 llvm::SmallPtrSet<const CFGBlock*, 256> reachable; in checkEndAnalysis() 64 const CFGBlock *CB = BE->getBlock(); in checkEndAnalysis() 76 const CFGBlock *CB = *I; in checkEndAnalysis() 124 const CFGBlock *Exit = BE.getDst(); in checkEndAnalysis()
|
D | DeadStoresChecker.cpp | 76 bool isReachable(const CFGBlock *block) const { in isReachable() 86 SmallVector<const CFGBlock*, 10> worklist; in computeReachableBlocks() 90 const CFGBlock *block = worklist.pop_back_val(); in computeReachableBlocks() 95 for (CFGBlock::const_succ_iterator i = block->succ_begin(), in computeReachableBlocks() 97 if (const CFGBlock *succ = *i) in computeReachableBlocks() 132 const CFGBlock *currentBlock; 258 void observeStmt(const Stmt *S, const CFGBlock *block, in observeStmt()
|
/external/clang/lib/StaticAnalyzer/Core/ |
D | CoreEngine.cpp | 170 const CFGBlock *Entry = &(L->getCFG()->getEntry()); in ExecuteWorkList() 184 const CFGBlock *Succ = *(Entry->succ_begin()); in ExecuteWorkList() 285 const CFGBlock *Blk = L.getDst(); in HandleBlockEdge() 342 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) { in HandleBlockExit() 374 for (CFGBlock::const_succ_iterator it = B->succ_begin(), in HandleBlockExit() 376 if (const CFGBlock *succ = *it) { in HandleBlockExit() 454 const CFGBlock * B, ExplodedNode *Pred) { in HandleBranch() 465 void CoreEngine::HandleStaticInit(const DeclStmt *DS, const CFGBlock *B, in HandleStaticInit() 477 void CoreEngine::HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, in HandlePostStmt() 511 const CFGBlock *Block, unsigned Idx) { in enqueueStmtNode() [all …]
|
/external/clang/include/clang/Analysis/FlowSensitive/ |
D | DataflowValues.h | 52 typedef llvm::DenseMap<const CFGBlock*, ValTy> BlockDataMapTy; 101 ValTy& getBlockData(const CFGBlock *B) { in getBlockData() 107 const ValTy& getBlockData(const CFGBlock *B) const { in getBlockData()
|