Lines Matching refs:Block
416 bool isDeadCodeRoot(const CFGBlock *Block);
418 const Stmt *findDeadCode(const CFGBlock *Block);
434 bool DeadCodeScan::isDeadCodeRoot(const clang::CFGBlock *Block) {
437 for (CFGBlock::const_pred_iterator I = Block->pred_begin(),
438 E = Block->pred_end(); I != E; ++I) {
458 // the coroutine statement. `Block` is the CFGBlock containing the `DeadStmt`.
459 static bool isInCoroutineStmt(const Stmt *DeadStmt, const CFGBlock *Block) {
464 for (CFGBlock::const_iterator I = Block->begin(), E = Block->end(); I != E;
496 static bool isValidDeadStmt(const Stmt *S, const clang::CFGBlock *Block) {
504 return !isInCoroutineStmt(S, Block);
507 const Stmt *DeadCodeScan::findDeadCode(const clang::CFGBlock *Block) {
508 for (CFGBlock::const_iterator I = Block->begin(), E = Block->end(); I!=E; ++I)
511 if (isValidDeadStmt(S, Block))
515 CFGTerminator T = Block->getTerminator();
518 if (S && isValidDeadStmt(S, Block))
541 const CFGBlock *Block = WorkList.pop_back_val();
545 if (Reachable[Block->getBlockID()])
549 const Stmt *S = findDeadCode(Block);
553 for (CFGBlock::const_pred_iterator I = Block->pred_begin(),
554 E = Block->pred_end(); I != E; ++I) {
563 count += scanMaybeReachableFromBlock(Block, PP, Reachable);
567 if (isDeadCodeRoot(Block)) {
568 reportDeadCode(Block, S, CB);
569 count += scanMaybeReachableFromBlock(Block, PP, Reachable);
575 DeferredLocs.push_back(std::make_pair(Block, S));
584 const CFGBlock *Block = I.first;
585 if (Reachable[Block->getBlockID()])
587 reportDeadCode(Block, I.second, CB);
588 count += scanMaybeReachableFromBlock(Block, PP, Reachable);