Lines Matching refs:Block
453 CFGBlock *Block = nullptr; member in __anon15de256c0411::CFGBuilder
672 return Block; in NYS()
712 void autoCreateBlock() { if (!Block) Block = createBlock(); } in autoCreateBlock()
1411 Block = nullptr; // the EXIT block is empty. Create all other blocks lazily. in buildCFG()
1508 return Block; in addInitializer()
1527 appendInitializer(Block, I); in addInitializer()
1545 appendStmt(Block, Default); in addInitializer()
1548 Block = R; in addInitializer()
1549 return Block; in addInitializer()
1555 return Block; in addInitializer()
1603 appendLoopExit(Block, LoopStmt); in addLoopExit()
1676 appendLifetimeEnds(Block, *I, S); in addLifetimeEnds()
1682 appendLifetimeEnds(Block, *I, S); in addLifetimeEnds()
1697 appendScopeEnd(Block, *I, S); in addScopesEnd()
1730 appendScopeEnd(Block, *I, S); in addAutomaticObjDtors()
1744 Block = createNoReturnBlock(); in addAutomaticObjDtors()
1750 appendScopeEnd(Block, *I, S); in addAutomaticObjDtors()
1751 appendAutomaticObjDtor(Block, *I, S); in addAutomaticObjDtors()
1767 appendBaseDtor(Block, &VI); in addImplicitDtorsForDestructor()
1777 appendBaseDtor(Block, &BI); in addImplicitDtorsForDestructor()
1795 appendMemberDtor(Block, FI); in addImplicitDtorsForDestructor()
2129 return Block; in Visit()
2153 return Block; in Visit()
2195 appendStmt(Block, S); in VisitStmt()
2203 CFGBlock *B = Block; in VisitChildren()
2223 appendStmt(Block, A); in VisitAddrLabelExpr()
2226 return Block; in VisitAddrLabelExpr()
2233 appendStmt(Block, U); in VisitUnaryOperator()
2240 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitLogicalOperator()
2292 Block = RHSBlock; in VisitLogicalOperator()
2321 Block = LHSBlock; in VisitLogicalOperator()
2351 appendStmt(Block, B); in VisitBinaryOperator()
2359 appendStmt(Block, B); in VisitBinaryOperator()
2367 appendStmt(Block, B); in VisitBinaryOperator()
2381 appendStmt(Block, E); in VisitNoRecurse()
2383 return Block; in VisitNoRecurse()
2393 Block = createBlock(false); in VisitBreakStmt()
2394 Block->setTerminator(B); in VisitBreakStmt()
2400 addSuccessor(Block, BreakJumpTarget.block); in VisitBreakStmt()
2404 return Block; in VisitBreakStmt()
2473 appendStmt(Block, C); in VisitCallExpr()
2479 appendCall(Block, C); in VisitCallExpr()
2484 if (Block) { in VisitCallExpr()
2485 Succ = Block; in VisitCallExpr()
2491 Block = createNoReturnBlock(); in VisitCallExpr()
2493 Block = createBlock(); in VisitCallExpr()
2495 appendCall(Block, C); in VisitCallExpr()
2500 addSuccessor(Block, TryTerminatedBlock); in VisitCallExpr()
2502 addSuccessor(Block, &cfg->getExit()); in VisitCallExpr()
2510 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitChooseExpr()
2517 Block = nullptr; in VisitChooseExpr()
2523 Block = nullptr; in VisitChooseExpr()
2528 Block = createBlock(false); in VisitChooseExpr()
2531 addSuccessor(Block, KnownVal.isFalse() ? nullptr : LHSBlock); in VisitChooseExpr()
2532 addSuccessor(Block, KnownVal.isTrue() ? nullptr : RHSBlock); in VisitChooseExpr()
2533 Block->setTerminator(C); in VisitChooseExpr()
2547 CFGBlock *LastBlock = Block; in VisitCompoundStmt()
2570 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitConditionalOperator()
2582 Block = nullptr; in VisitConditionalOperator()
2589 Block = nullptr; in VisitConditionalOperator()
2607 Block = createBlock(false); in VisitConditionalOperator()
2611 addSuccessor(Block, LHSBlock, !KnownVal.isFalse()); in VisitConditionalOperator()
2612 addSuccessor(Block, RHSBlock, !KnownVal.isTrue()); in VisitConditionalOperator()
2613 Block->setTerminator(C); in VisitConditionalOperator()
2634 return Block; in VisitDeclStmt()
2670 return Block; in VisitDeclSubExpr()
2681 if (Block) { in VisitDeclSubExpr()
2682 Succ = Block; in VisitDeclSubExpr()
2683 Block = nullptr; in VisitDeclSubExpr()
2705 appendStmt(Block, DS); in VisitDeclSubExpr()
2714 CFGBlock *LastBlock = Block; in VisitDeclSubExpr()
2737 maybeAddScopeBeginForVarDecl(Block, VD, DS); in VisitDeclSubExpr()
2746 Block = createBlock(false); in VisitDeclSubExpr()
2747 Block->setTerminator(DS); in VisitDeclSubExpr()
2748 addSuccessor(Block, blockAfterStaticInit); in VisitDeclSubExpr()
2749 addSuccessor(Block, B); in VisitDeclSubExpr()
2750 B = Block; in VisitDeclSubExpr()
2781 if (Block) { in VisitIfStmt()
2782 Succ = Block; in VisitIfStmt()
2795 Block = nullptr; in VisitIfStmt()
2806 else if (Block) { in VisitIfStmt()
2818 Block = nullptr; in VisitIfStmt()
2833 } else if (Block) { in VisitIfStmt()
2855 Block = createBlock(false); in VisitIfStmt()
2858 Block->setTerminator(I); in VisitIfStmt()
2865 addSuccessor(Block, ThenBlock, /* isReachable = */ !KnownVal.isFalse()); in VisitIfStmt()
2866 addSuccessor(Block, ElseBlock, /* isReachable = */ !KnownVal.isTrue()); in VisitIfStmt()
2900 Block = createBlock(false); in VisitReturnStmt()
2911 if (!Block->hasNoReturnElement()) in VisitReturnStmt()
2912 addSuccessor(Block, &cfg->getExit()); in VisitReturnStmt()
2928 CFGBlock *SEHExceptBlock = Block; in VisitSEHExceptStmt()
2942 Block = nullptr; in VisitSEHExceptStmt()
2958 Block = createBlock(false); in VisitSEHLeaveStmt()
2959 Block->setTerminator(LS); in VisitSEHLeaveStmt()
2965 addSuccessor(Block, SEHLeaveJumpTarget.block); in VisitSEHLeaveStmt()
2969 return Block; in VisitSEHLeaveStmt()
2977 if (Block) { in VisitSEHTryStmt()
2980 SEHTrySuccessor = Block; in VisitSEHTryStmt()
2998 Block = nullptr; in VisitSEHTryStmt()
3026 Block = nullptr; in VisitSEHTryStmt()
3033 CFGBlock *LabelBlock = Block; in VisitLabelStmt()
3051 Block = nullptr; in VisitLabelStmt()
3088 Block = createBlock(false); in VisitGotoStmt()
3089 Block->setTerminator(G); in VisitGotoStmt()
3096 BackpatchBlocks.push_back(JumpSource(Block, ScopePos)); in VisitGotoStmt()
3100 addSuccessor(Block, JT.block); in VisitGotoStmt()
3103 return Block; in VisitGotoStmt()
3130 if (Block) { in VisitForStmt()
3133 LoopSuccessor = Block; in VisitForStmt()
3149 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitForStmt()
3155 Block = Succ = TransitionBlock = createBlock(false); in VisitForStmt()
3165 if (Block) { in VisitForStmt()
3166 assert(Block == Succ); in VisitForStmt()
3169 Block = nullptr; in VisitForStmt()
3228 Block = ExitConditionBlock; in VisitForStmt()
3241 appendStmt(Block, DS); in VisitForStmt()
3243 assert(Block == EntryConditionBlock); in VisitForStmt()
3248 if (Block && badCFG) in VisitForStmt()
3273 Block = createBlock(); in VisitForStmt()
3279 Block = nullptr; in VisitForStmt()
3297 appendStmt(Block, M); in VisitMemberExpr()
3336 if (Block) { in VisitObjCForCollectionStmt()
3339 LoopSuccessor = Block; in VisitObjCForCollectionStmt()
3340 Block = nullptr; in VisitObjCForCollectionStmt()
3354 Block = ExitConditionBlock; in VisitObjCForCollectionStmt()
3361 if (Block) { in VisitObjCForCollectionStmt()
3364 Block = nullptr; in VisitObjCForCollectionStmt()
3374 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitObjCForCollectionStmt()
3392 else if (Block) { in VisitObjCForCollectionStmt()
3406 Block = createBlock(); in VisitObjCForCollectionStmt()
3428 Block = nullptr; in VisitObjCAtSynchronizedStmt()
3434 appendStmt(Block, S); in VisitObjCAtSynchronizedStmt()
3449 appendStmt(Block, E); in VisitPseudoObjectExpr()
3451 CFGBlock *lastBlock = Block; in VisitPseudoObjectExpr()
3488 if (Block) { in VisitWhileStmt()
3491 LoopSuccessor = Block; in VisitWhileStmt()
3492 Block = nullptr; in VisitWhileStmt()
3504 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitWhileStmt()
3530 else if (Block && badCFG) in VisitWhileStmt()
3558 Block = ExitConditionBlock; in VisitWhileStmt()
3559 Block = EntryConditionBlock = addStmt(C); in VisitWhileStmt()
3572 appendStmt(Block, DS); in VisitWhileStmt()
3574 assert(Block == EntryConditionBlock); in VisitWhileStmt()
3579 if (Block && badCFG) in VisitWhileStmt()
3598 Block = nullptr; in VisitWhileStmt()
3608 return Block; in VisitObjCAtCatchStmt()
3620 Block = createBlock(false); in VisitObjCAtThrowStmt()
3623 addSuccessor(Block, &cfg->getExit()); in VisitObjCAtThrowStmt()
3635 appendObjCMessage(Block, ME); in VisitObjCMessageExpr()
3646 Block = createBlock(false); in VisitCXXThrowExpr()
3650 addSuccessor(Block, TryTerminatedBlock); in VisitCXXThrowExpr()
3653 addSuccessor(Block, &cfg->getExit()); in VisitCXXThrowExpr()
3667 if (Block) { in VisitDoStmt()
3670 LoopSuccessor = Block; in VisitDoStmt()
3686 Block = ExitConditionBlock; in VisitDoStmt()
3688 if (Block) { in VisitDoStmt()
3706 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitDoStmt()
3717 Block = nullptr; in VisitDoStmt()
3729 else if (Block) { in VisitDoStmt()
3739 Block = nullptr; in VisitDoStmt()
3757 Block = nullptr; in VisitDoStmt()
3771 Block = createBlock(false); in VisitContinueStmt()
3772 Block->setTerminator(C); in VisitContinueStmt()
3778 addSuccessor(Block, ContinueJumpTarget.block); in VisitContinueStmt()
3782 return Block; in VisitContinueStmt()
3789 appendStmt(Block, E); in VisitUnaryExprOrTypeTraitExpr()
3793 CFGBlock *lastBlock = Block; in VisitUnaryExprOrTypeTraitExpr()
3808 appendStmt(Block, SE); in VisitStmtExpr()
3833 if (Block) { in VisitSwitchStmt()
3836 SwitchSuccessor = Block; in VisitSwitchStmt()
3861 Block = nullptr; in VisitSwitchStmt()
3881 if (Block) { in VisitSwitchStmt()
3901 Block = SwitchTerminatedBlock; in VisitSwitchStmt()
3909 appendStmt(Block, Terminator->getConditionVariableDeclStmt()); in VisitSwitchStmt()
3991 CFGBlock *CaseBlock = Block; in VisitCaseStmt()
4010 Block = nullptr; in VisitCaseStmt()
4027 DefaultCaseBlock = Block; in VisitDefaultStmt()
4046 Block = nullptr; in VisitDefaultStmt()
4059 if (Block) { in VisitCXXTryStmt()
4062 TrySuccessor = Block; in VisitCXXTryStmt()
4080 Block = nullptr; in VisitCXXTryStmt()
4103 Block = nullptr; in VisitCXXTryStmt()
4126 CFGBlock *CatchBlock = Block; in VisitCXXCatchStmt()
4145 Block = nullptr; in VisitCXXCatchStmt()
4181 if (Block) { in VisitCXXForRangeStmt()
4184 LoopSuccessor = Block; in VisitCXXForRangeStmt()
4199 Block = ConditionBlock; in VisitCXXForRangeStmt()
4223 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitCXXForRangeStmt()
4228 Block = nullptr; in VisitCXXForRangeStmt()
4239 assert(Block); in VisitCXXForRangeStmt()
4242 Block = nullptr; in VisitCXXForRangeStmt()
4265 Block = createBlock(); in VisitCXXForRangeStmt()
4293 appendStmt(Block, E); in VisitCXXBindTemporaryExpr()
4313 appendConstructor(Block, C); in VisitCXXConstructExpr()
4321 appendStmt(Block, NE); in VisitCXXNewExpr()
4328 Block = Visit(NE->getInitializer()); in VisitCXXNewExpr()
4331 appendNewAllocator(Block, NE); in VisitCXXNewExpr()
4334 Block = Visit(NE->getArraySize()); in VisitCXXNewExpr()
4338 Block = Visit(*I); in VisitCXXNewExpr()
4340 return Block; in VisitCXXNewExpr()
4346 appendStmt(Block, DE); in VisitCXXDeleteExpr()
4353 appendDeleteDtor(Block, RD, DE); in VisitCXXDeleteExpr()
4364 appendStmt(Block, E); in VisitCXXFunctionalCastExpr()
4379 appendConstructor(Block, C); in VisitCXXTemporaryObjectExpr()
4387 appendStmt(Block, E); in VisitImplicitCastExpr()
4410 Block = createBlock(false); in VisitIndirectGotoStmt()
4411 Block->setTerminator(I); in VisitIndirectGotoStmt()
4412 addSuccessor(Block, IBlock); in VisitIndirectGotoStmt()
4481 return Block; in VisitForTemporaryDtors()
4487 CFGBlock *B = Block; in VisitForTemporaryDtors()
4512 return Block; in VisitChildrenForTemporaryDtors()
4519 CFGBlock *B = Block; in VisitChildrenForTemporaryDtors()
4544 return Block; in VisitBinaryOperatorForTemporaryDtors()
4579 Block = createNoReturnBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
4584 Block = createBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
4591 appendTemporaryDtor(Block, E); in VisitCXXBindTemporaryExprForTemporaryDtors()
4593 B = Block; in VisitCXXBindTemporaryExprForTemporaryDtors()
4607 addSuccessor(Decision, Block, !Context.KnownExecuted.isFalse()); in InsertTempDtorDecisionBlock()
4610 Block = Decision; in InsertTempDtorDecisionBlock()
4617 CFGBlock *ConditionBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
4626 CFGBlock *TrueBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
4628 Block = ConditionBlock; in VisitConditionalOperatorForTemporaryDtors()
4637 Block = TrueBlock; in VisitConditionalOperatorForTemporaryDtors()
4642 return Block; in VisitConditionalOperatorForTemporaryDtors()