Lines Matching refs:CB
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);
78 const CFGBlock *CB = BE->getBlock(); in checkEndAnalysis() local
79 reachable.insert(CB->getBlockID()); in checkEndAnalysis()
95 for (const CFGBlock *CB : *C) { in checkEndAnalysis()
97 if (reachable.count(CB->getBlockID())) in checkEndAnalysis()
101 if (isEmptyCFGBlock(CB)) in checkEndAnalysis()
105 if (!visited.count(CB->getBlockID())) in checkEndAnalysis()
106 FindUnreachableEntryPoints(CB, reachable, visited); in checkEndAnalysis()
109 if (reachable.count(CB->getBlockID())) in checkEndAnalysis()
113 if (isInvalidPath(CB, *PM)) in checkEndAnalysis()
120 if (const Stmt *label = CB->getLabel()) in checkEndAnalysis()
127 if (!CB->empty()) { in checkEndAnalysis()
129 for (CFGBlock::const_iterator ci = CB->begin(), ce = CB->end(); in checkEndAnalysis()
148 if (const Stmt *S = getUnreachableStmt(CB)) { in checkEndAnalysis()
177 void UnreachableCodeChecker::FindUnreachableEntryPoints(const CFGBlock *CB, in FindUnreachableEntryPoints() argument
180 visited.insert(CB->getBlockID()); in FindUnreachableEntryPoints()
182 for (const CFGBlock *PredBlock : CB->preds()) { in FindUnreachableEntryPoints()
189 reachable.insert(CB->getBlockID()); in FindUnreachableEntryPoints()
198 const Stmt *UnreachableCodeChecker::getUnreachableStmt(const CFGBlock *CB) { in getUnreachableStmt() argument
199 for (const CFGElement &Elem : *CB) { in getUnreachableStmt()
205 return CB->getTerminatorStmt(); in getUnreachableStmt()
213 bool UnreachableCodeChecker::isInvalidPath(const CFGBlock *CB, in isInvalidPath() argument
218 if (CB->pred_size() > 1) in isInvalidPath()
222 if (CB->pred_size() == 0) in isInvalidPath()
225 const CFGBlock *pred = *CB->pred_begin(); in isInvalidPath()
245 bool UnreachableCodeChecker::isEmptyCFGBlock(const CFGBlock *CB) { in isEmptyCFGBlock() argument
246 return CB->getLabel() == nullptr // No labels in isEmptyCFGBlock()
247 && CB->size() == 0 // No statements in isEmptyCFGBlock()
248 && !CB->getTerminatorStmt(); // No terminator in isEmptyCFGBlock()