Lines Matching full:cb
39 static inline const Stmt *getUnreachableStmt(const CFGBlock *CB);
40 static void FindUnreachableEntryPoints(const CFGBlock *CB,
43 static bool isInvalidPath(const CFGBlock *CB, const ParentMap &PM);
44 static inline bool isEmptyCFGBlock(const CFGBlock *CB);
78 const CFGBlock *CB = BE->getBlock(); in checkEndAnalysis() local
79 reachable.insert(CB->getBlockID()); in checkEndAnalysis()
96 const CFGBlock *CB = *I; in checkEndAnalysis() local
98 if (reachable.count(CB->getBlockID())) in checkEndAnalysis()
102 if (isEmptyCFGBlock(CB)) in checkEndAnalysis()
106 if (!visited.count(CB->getBlockID())) in checkEndAnalysis()
107 FindUnreachableEntryPoints(CB, reachable, visited); in checkEndAnalysis()
110 if (reachable.count(CB->getBlockID())) in checkEndAnalysis()
114 if (isInvalidPath(CB, *PM)) in checkEndAnalysis()
121 if (const Stmt *label = CB->getLabel()) in checkEndAnalysis()
128 if (!CB->empty()) { in checkEndAnalysis()
130 for (CFGBlock::const_iterator ci = CB->begin(), ce = CB->end(); in checkEndAnalysis()
149 if (const Stmt *S = getUnreachableStmt(CB)) { in checkEndAnalysis()
178 void UnreachableCodeChecker::FindUnreachableEntryPoints(const CFGBlock *CB, in FindUnreachableEntryPoints() argument
181 visited.insert(CB->getBlockID()); in FindUnreachableEntryPoints()
183 for (CFGBlock::const_pred_iterator I = CB->pred_begin(), E = CB->pred_end(); in FindUnreachableEntryPoints()
191 reachable.insert(CB->getBlockID()); in FindUnreachableEntryPoints()
200 const Stmt *UnreachableCodeChecker::getUnreachableStmt(const CFGBlock *CB) { in getUnreachableStmt() argument
201 for (CFGBlock::const_iterator I = CB->begin(), E = CB->end(); I != E; ++I) { in getUnreachableStmt()
207 if (const Stmt *S = CB->getTerminatorStmt()) in getUnreachableStmt()
218 bool UnreachableCodeChecker::isInvalidPath(const CFGBlock *CB, in isInvalidPath() argument
223 if (CB->pred_size() > 1) in isInvalidPath()
227 if (CB->pred_size() == 0) in isInvalidPath()
230 const CFGBlock *pred = *CB->pred_begin(); in isInvalidPath()
250 bool UnreachableCodeChecker::isEmptyCFGBlock(const CFGBlock *CB) { in isEmptyCFGBlock() argument
251 return CB->getLabel() == nullptr // No labels in isEmptyCFGBlock()
252 && CB->size() == 0 // No statements in isEmptyCFGBlock()
253 && !CB->getTerminatorStmt(); // No terminator in isEmptyCFGBlock()