/external/clang/include/clang/Analysis/Analyses/ |
CFGReachabilityAnalysis.h | 25 class CFGBlock; 41 bool isReachable(const CFGBlock *Src, const CFGBlock *Dst); 44 void mapReachability(const CFGBlock *Dst);
|
PostOrderCFGView.h | 43 struct iterator { typedef const CFGBlock *value_type; }; 48 /// \brief Set the bit associated with a particular CFGBlock. 50 std::pair<llvm::NoneType, bool> insert(const CFGBlock *Block) { 52 // make sure that Block is non-null. Moreover, the CFGBlock iterator will 63 /// \brief Check if the bit for a CFGBlock has been already set. 66 bool alreadySet(const CFGBlock *Block) { 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 [all...] |
Dominators.h | 32 class CFGBlock; 33 typedef llvm::DomTreeNodeBase<CFGBlock> DomTreeNode; 41 llvm::DominatorTreeBase<CFGBlock>* DT; 44 DT = new llvm::DominatorTreeBase<CFGBlock>(false); 49 llvm::DominatorTreeBase<CFGBlock>& getBase() { return *DT; } 51 /// \brief This method returns the root CFGBlock of the dominators tree. 53 inline CFGBlock *getRoot() const { 58 /// for CFGBlock. 105 /// \brief This method tests if one CFGBlock dominates the other. 109 inline bool dominates(const CFGBlock* A, const CFGBlock* B) const [all...] |
Consumed.h | 167 void intersectAtLoopHead(const CFGBlock *LoopHead, const CFGBlock *LoopBack, 219 bool allBackEdgesVisited(const CFGBlock *CurrBlock, 220 const CFGBlock *TargetBlock); 222 void addInfo(const CFGBlock *Block, ConsumedStateMap *StateMap, 224 void addInfo(const CFGBlock *Block, 227 ConsumedStateMap* borrowInfo(const CFGBlock *Block); 229 void discardInfo(const CFGBlock *Block); 231 std::unique_ptr<ConsumedStateMap> getInfo(const CFGBlock *Block); 233 bool isBackEdge(const CFGBlock *From, const CFGBlock *To) [all...] |
ReachableCode.h | 29 class CFGBlock; 61 unsigned ScanReachableFromBlock(const CFGBlock *Start,
|
ThreadSafetyCommon.h | 84 void enterCFG(CFG *Cfg, const NamedDecl *D, const CFGBlock *First) {} 86 // Enter a CFGBlock. 87 void enterCFGBlock(const CFGBlock *B) {} 93 void handlePredecessor(const CFGBlock *Pred) {} 96 void handlePredecessorBackEdge(const CFGBlock *Pred) {} 99 void enterCFGBlockBody(const CFGBlock *B) {} 108 void exitCFGBlockBody(const CFGBlock *B) {} 114 void handleSuccessor(const CFGBlock *Succ) {} 117 void handleSuccessorBackEdge(const CFGBlock *Succ) {} 119 // Leave a CFGBlock [all...] |
LiveVariables.h | 25 class CFGBlock; 61 const CFGBlock *currentBlock, 77 bool isLive(const CFGBlock *B, const VarDecl *D);
|
/external/clang/include/clang/Analysis/ |
CFGStmtMap.h | 1 //===--- CFGStmtMap.h - Map from Stmt* to CFGBlock* -----------*- C++ -*-===// 11 // Stmt* to CFGBlock* 23 class CFGBlock; 40 /// Returns the CFGBlock the specified Stmt* appears in. For Stmt* that 41 /// are terminators, the CFGBlock is the block they appear as a terminator, 43 /// CaseStmts and LabelStmts map to the CFGBlock they label. 44 CFGBlock *getBlock(Stmt * S); 46 const CFGBlock *getBlock(const Stmt * S) const {
|
CFG.h | 297 /// CFGTerminator - Represents CFGBlock terminator statement. 327 /// CFGBlock - Represents a single basic block in a source-level CFG. 353 class CFGBlock { 411 /// BlockID - A numerical ID assigned to a CFGBlock during construction 428 CFGBlock *ReachableBlock; 429 llvm::PointerIntPair<CFGBlock*, 2> UnreachableBlock; 433 AdjacentBlock(CFGBlock *B, bool IsReachable); 437 AdjacentBlock(CFGBlock *B, CFGBlock *AlternateBlock); 440 CFGBlock *getReachableBlock() const [all...] |
AnalysisContext.h | 130 const CFGBlock *getBlockForRegisteredExpression(const Stmt *stmt); 185 const CFGBlock *Blk, 283 const CFGBlock *Block; 285 // The index of the callsite in the CFGBlock. 290 const Stmt *s, const CFGBlock *blk, 300 const CFGBlock *getCallSiteBlock() const { return Block; } 311 const CFGBlock *blk, unsigned idx) { 387 const CFGBlock *blk, unsigned idx); 452 const CFGBlock *Blk, 467 const CFGBlock *Blk [all...] |
ProgramPoint.h | 218 BlockEntrance(const CFGBlock *B, const LocationContext *L, 224 const CFGBlock *getBlock() const { 225 return reinterpret_cast<const CFGBlock*>(getData1()); 229 const CFGBlock *B = getBlock(); 243 BlockExit(const CFGBlock *B, const LocationContext *L) 246 const CFGBlock *getBlock() const { 247 return reinterpret_cast<const CFGBlock*>(getData1()); 473 BlockEdge(const CFGBlock *B1, const CFGBlock *B2, const LocationContext *L) 479 const CFGBlock *getSrc() const [all...] |
/external/clang/lib/Analysis/ |
CFGReachabilityAnalysis.cpp | 25 bool CFGReverseBlockReachabilityAnalysis::isReachable(const CFGBlock *Src, 26 const CFGBlock *Dst) { 42 void CFGReverseBlockReachabilityAnalysis::mapReachability(const CFGBlock *Dst) { 43 SmallVector<const CFGBlock *, 11> worklist; 55 const CFGBlock *block = worklist.pop_back_val(); 70 for (CFGBlock::const_pred_iterator i = block->pred_begin(),
|
CFGStmtMap.cpp | 1 //===--- CFGStmtMap.h - Map from Stmt* to CFGBlock* -----------*- C++ -*-===// 11 // Stmt* to CFGBlock* 22 typedef llvm::DenseMap<const Stmt*, CFGBlock*> SMap; 27 CFGBlock *CFGStmtMap::getBlock(Stmt *S) { 36 CFGBlock *B = I->second; 49 static void Accumulate(SMap &SM, CFGBlock *B) { 51 for (CFGBlock::iterator I = B->begin(), E = B->end(); I != E; ++I) { 57 CFGBlock *&Entry = SM[CS->getStmt()];
|
CFG.cpp | 160 /// - For every normal (without jump) end of scope add to CFGBlock destructors 162 /// - For every jump add to CFGBlock destructors for objects 279 /// consists of CFGBlock that specifies position in CFG and 283 BlockScopePosPair(CFGBlock *b, LocalScope::const_iterator scopePos) 286 CFGBlock *block; 373 CFGBlock *Block; 374 CFGBlock *Succ; 377 CFGBlock *SwitchTerminatedBlock; 378 CFGBlock *DefaultCaseBlock; 379 CFGBlock *TryTerminatedBlock [all...] |
ReachableCode.cpp | 49 static bool isTrivialDoWhile(const CFGBlock *B, const Stmt *S) { 61 static bool isDeadReturn(const CFGBlock *B, const Stmt *S) { 65 const CFGBlock *Current = B; 67 for (CFGBlock::const_reverse_iterator I = Current->rbegin(), 252 static bool shouldTreatSuccessorsAsReachable(const CFGBlock *B, 267 static unsigned scanFromBlock(const CFGBlock *Start, 274 SmallVector<const CFGBlock*, 32> WL; 287 const CFGBlock *item = WL.pop_back_val(); 299 for (CFGBlock::const_succ_iterator I = item->succ_begin(), 301 const CFGBlock *B = *I [all...] |
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) { 56 void DataflowWorklist::enqueuePredecessors(const clang::CFGBlock *block) { 58 for (CFGBlock::const_pred_iterator I = block->pred_begin(), 73 const CFGBlock *DataflowWorklist::dequeue() { 76 const CFGBlock *b = worklist.pop_back_val(); 87 llvm::DenseMap<const CFGBlock *, LiveVariables::LivenessValues> blocksEndToLiveness [all...] |
PostOrderCFGView.cpp | 40 bool PostOrderCFGView::BlockOrderCompare::operator()(const CFGBlock *b1, 41 const CFGBlock *b2) const {
|
UninitializedValues.cpp | 118 ValueVector &getValueVector(const CFGBlock *block) { 124 bool updateValueVectorWithScratch(const CFGBlock *block); 134 Value getValue(const CFGBlock *block, const CFGBlock *dstBlock, 158 static void printVector(const CFGBlock *block, ValueVector &bv, 181 bool CFGBlockValues::updateValueVectorWithScratch(const CFGBlock *block) { 209 SmallVector<const CFGBlock *, 20> worklist; 223 void enqueueSuccessors(const CFGBlock *block); 224 const CFGBlock *dequeue(); 228 void DataflowWorklist::enqueueSuccessors(const clang::CFGBlock *block) [all...] |
/external/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ |
WorkList.h | 24 class CFGBlock; 31 const CFGBlock *block; 36 const CFGBlock *B, unsigned idx) 54 /// Returns the CFGblock associated with the worklist unit. 55 const CFGBlock *getBlock() const { return block; } 57 /// Return the index within the CFGBlock for the worklist unit. 69 void enqueue(ExplodedNode *N, const CFGBlock *B, unsigned idx) {
|
CoreEngine.h | 55 typedef std::vector<std::pair<const CFGBlock*, const ExplodedNode*> > 93 void HandleBlockExit(const CFGBlock *B, ExplodedNode *Pred); 97 void HandlePostStmt(const CFGBlock *B, unsigned StmtIdx, ExplodedNode *Pred); 99 void HandleBranch(const Stmt *Cond, const Stmt *Term, const CFGBlock *B, 102 const CFGBlock *B, ExplodedNode *Pred); 105 void HandleStaticInit(const DeclStmt *DS, const CFGBlock *B, 147 void addAbortedBlock(const ExplodedNode *node, const CFGBlock *block) { 171 void enqueue(ExplodedNodeSet &Set, const CFGBlock *Block, unsigned Idx); 178 void enqueueStmtNode(ExplodedNode *N, const CFGBlock *Block, unsigned Idx); 184 const CFGBlock *Block [all...] |
SubEngine.h | 22 class CFGBlock; 59 /// Called by CoreEngine when it starts processing a CFGBlock. The 72 const CFGBlock *DstT, 73 const CFGBlock *DstF) = 0; 82 const CFGBlock *DstT, 83 const CFGBlock *DstF) = 0; 91 const CFGBlock *DstT, 92 const CFGBlock *DstF) = 0;
|
/external/clang/lib/StaticAnalyzer/Checkers/ |
UnreachableCodeChecker.cpp | 40 static inline const Stmt *getUnreachableStmt(const CFGBlock *CB); 41 static void FindUnreachableEntryPoints(const CFGBlock *CB, 44 static bool isInvalidPath(const CFGBlock *CB, const ParentMap &PM); 45 static inline bool isEmptyCFGBlock(const CFGBlock *CB); 79 const CFGBlock *CB = BE->getBlock(); 97 const CFGBlock *CB = *I; 131 for (CFGBlock::const_iterator ci = CB->begin(), ce = CB->end(); 169 // Recursively finds the entry point(s) for this dead CFGBlock. 170 void UnreachableCodeChecker::FindUnreachableEntryPoints(const CFGBlock *CB, 175 for (CFGBlock::const_pred_iterator I = CB->pred_begin(), E = CB->pred_end() [all...] |
AnalyzerStatsChecker.cpp | 46 llvm::SmallPtrSet<const CFGBlock*, 32> reachable; 64 const CFGBlock *CB = BE->getBlock(); 76 const CFGBlock *CB = *I; 124 const CFGBlock *Exit = BE.getDst();
|
/external/clang/include/clang/Analysis/FlowSensitive/ |
DataflowValues.h | 52 typedef llvm::DenseMap<const CFGBlock*, ValTy> BlockDataMapTy; 98 /// specified CFGBlock. If the dataflow analysis is a forward analysis, 101 ValTy& getBlockData(const CFGBlock *B) { 107 const ValTy& getBlockData(const CFGBlock *B) const {
|
/external/clang/lib/StaticAnalyzer/Core/ |
CoreEngine.cpp | 171 const CFGBlock *Entry = &(L->getCFG()->getEntry()); 185 const CFGBlock *Succ = *(Entry->succ_begin()); 298 const CFGBlock *Blk = L.getDst(); 320 // Call into the SubEngine to process entering the CFGBlock. 355 void CoreEngine::HandleBlockExit(const CFGBlock * B, ExplodedNode *Pred) { 392 for (CFGBlock::const_succ_iterator it = B->succ_begin(), 394 if (const CFGBlock *succ = *it) { 477 const CFGBlock * B, ExplodedNode *Pred) { 488 const CFGBlock *B, 499 void CoreEngine::HandleStaticInit(const DeclStmt *DS, const CFGBlock *B [all...] |