Home | History | Annotate | Download | only in Analysis

Lines Matching refs:Terminator

1028 /// happens to be logical end. Use blocks terminator as statement that specifies
1292 // The RHS is not a nested logical operation. Don't push the terminator
1294 // pieces of the CFG, and link up the RHSBlock with the terminator
1327 // For the LHS, treat 'B' as the terminator that we want to sink
1329 // terminator.
1334 // This contains the '&&' or '||' as the terminator.
1838 // Set the terminator of the new block to the If statement.
2172 // Set the terminator for the "exit" condition block.
2487 // Set the terminator for the "exit" condition block.
2622 CFGBlock *CFGBuilder::VisitSwitchStmt(SwitchStmt *Terminator) {
2633 if (VarDecl *VD = Terminator->getConditionVariable()) {
2636 addAutomaticObjDtors(ScopePos, SwitchBeginScopePos, Terminator);
2666 assert(Terminator->getBody() && "switch must contain a non-NULL body");
2675 assert(Terminator->getCond() && "switch condition must be non-NULL");
2677 bool b = tryEvaluate(Terminator->getCond(), result);
2683 if (!isa<CompoundStmt>(Terminator->getBody()))
2684 addLocalScopeAndDtors(Terminator->getBody());
2686 addStmt(Terminator->getBody());
2700 SwitchAlwaysHasSuccessor |= Terminator->isAllEnumCasesCovered() &&
2701 Terminator->getSwitchCaseList();
2705 // Add the terminator and condition in the switch block.
2706 SwitchTerminatedBlock->setTerminator(Terminator);
2708 CFGBlock *LastBlock = addStmt(Terminator->getCond());
2712 if (VarDecl *VD = Terminator->getConditionVariable()) {
2715 appendStmt(Block, Terminator->getConditionVariableDeclStmt());
2823 CFGBlock *CFGBuilder::VisitDefaultStmt(DefaultStmt *Terminator) {
2824 if (Terminator->getSubStmt())
2825 addStmt(Terminator->getSubStmt());
2834 DefaultCaseBlock->setLabel(Terminator);
2854 CFGBlock *CFGBuilder::VisitCXXTryStmt(CXXTryStmt *Terminator) {
2869 // Add the terminator in the try block.
2870 NewTryTerminatedBlock->setTerminator(Terminator);
2873 for (unsigned h = 0; h <Terminator->getNumHandlers(); ++h) {
2876 CXXCatchStmt *CS = Terminator->getHandler(h);
2902 assert(Terminator->getTryBlock() && "try must contain a non-NULL body");
2904 return addStmt(Terminator->getTryBlock());
3575 void VisitStmt(Stmt *Terminator) {
3576 Terminator->printPretty(OS, Helper, Policy);
3609 void VisitSwitchStmt(SwitchStmt *Terminator) {
3611 Terminator->getCond()->printPretty(OS, Helper, Policy);
3835 // Print the terminator of this block.
3959 /// printTerminator - A simple pretty printer of the terminator of a CFGBlock.
3967 Stmt *Terminator = this->Terminator;
3968 if (!Terminator)
3973 switch (Terminator->getStmtClass()) {
3978 E = cast<CXXForRangeStmt>(Terminator)->getCond();
3982 E = cast<ForStmt>(Terminator)->getCond();
3986 E = cast<WhileStmt>(Terminator)->getCond();
3990 E = cast<DoStmt>(Terminator)->getCond();
3994 E = cast<IfStmt>(Terminator)->getCond();
3998 E = cast<ChooseExpr>(Terminator)->getCond();
4002 E = cast<IndirectGotoStmt>(Terminator)->getTarget();
4006 E = cast<SwitchStmt>(Terminator)->getCond();
4010 E = cast<BinaryConditionalOperator>(Terminator)->getCond();
4014 E = cast<ConditionalOperator>(Terminator)->getCond();
4018 E = cast<BinaryOperator>(Terminator)->getLHS();
4022 return Terminator;