Home | History | Annotate | Download | only in Analysis

Lines Matching defs:Terminator

516   ///     CXXBindTemporaryExpr as terminator, and branches to the current block
1414 /// happens to be logical end. Use blocks terminator as statement that specifies
1685 // The RHS is not a nested logical operation. Don't push the terminator
1687 // pieces of the CFG, and link up the RHSBlock with the terminator
1722 // For the LHS, treat 'B' as the terminator that we want to sink
1724 // terminator.
1729 // This contains the '&&' or '||' as the terminator.
2255 // Set the terminator of the new block to the If statement.
2603 // Set the terminator for the "exit" condition block.
2918 // Set the terminator for the "exit" condition block.
3053 CFGBlock *CFGBuilder::VisitSwitchStmt(SwitchStmt *Terminator) {
3064 if (VarDecl *VD = Terminator->getConditionVariable()) {
3067 addAutomaticObjDtors(ScopePos, SwitchBeginScopePos, Terminator);
3097 assert(Terminator->getBody() && "switch must contain a non-NULL body");
3106 assert(Terminator->getCond() && "switch condition must be non-NULL");
3108 bool b = tryEvaluate(Terminator->getCond(), result);
3114 if (!isa<CompoundStmt>(Terminator->getBody()))
3115 addLocalScopeAndDtors(Terminator->getBody());
3117 addStmt(Terminator->getBody());
3131 SwitchAlwaysHasSuccessor |= Terminator->isAllEnumCasesCovered() &&
3132 Terminator->getSwitchCaseList();
3136 // Add the terminator and condition in the switch block.
3137 SwitchTerminatedBlock->setTerminator(Terminator);
3139 CFGBlock *LastBlock = addStmt(Terminator->getCond());
3143 if (VarDecl *VD = Terminator->getConditionVariable()) {
3146 appendStmt(Block, Terminator->getConditionVariableDeclStmt());
3253 CFGBlock *CFGBuilder::VisitDefaultStmt(DefaultStmt *Terminator) {
3254 if (Terminator->getSubStmt())
3255 addStmt(Terminator->getSubStmt());
3264 DefaultCaseBlock->setLabel(Terminator);
3284 CFGBlock *CFGBuilder::VisitCXXTryStmt(CXXTryStmt *Terminator) {
3299 // Add the terminator in the try block.
3300 NewTryTerminatedBlock->setTerminator(Terminator);
3303 for (unsigned h = 0; h <Terminator->getNumHandlers(); ++h) {
3306 CXXCatchStmt *CS = Terminator->getHandler(h);
3332 assert(Terminator->getTryBlock() && "try must contain a non-NULL body");
3334 return addStmt(Terminator->getTryBlock());
4091 void VisitStmt(Stmt *Terminator) {
4092 Terminator->printPretty(OS, Helper, Policy);
4125 void VisitSwitchStmt(SwitchStmt *Terminator) {
4127 Terminator->getCond()->printPretty(OS, Helper, Policy);
4381 // Print the terminator of this block.
4530 /// printTerminator - A simple pretty printer of the terminator of a CFGBlock.
4538 Stmt *Terminator = this->Terminator;
4539 if (!Terminator)
4544 switch (Terminator->getStmtClass()) {
4549 E = cast<CXXForRangeStmt>(Terminator)->getCond();
4553 E = cast<ForStmt>(Terminator)->getCond();
4557 E = cast<WhileStmt>(Terminator)->getCond();
4561 E = cast<DoStmt>(Terminator)->getCond();
4565 E = cast<IfStmt>(Terminator)->getCond();
4569 E = cast<ChooseExpr>(Terminator)->getCond();
4573 E = cast<IndirectGotoStmt>(Terminator)->getTarget();
4577 E = cast<SwitchStmt>(Terminator)->getCond();
4581 E = cast<BinaryConditionalOperator>(Terminator)->getCond();
4585 E = cast<ConditionalOperator>(Terminator)->getCond();
4589 E = cast<BinaryOperator>(Terminator)->getLHS();
4593 return Terminator;