Lines Matching refs:Block
473 CFGBlock *Block = nullptr; member in __anon8d78c9ed0411::CFGBuilder
705 return Block; in NYS()
745 void autoCreateBlock() { if (!Block) Block = createBlock(); } in autoCreateBlock()
1499 Block = nullptr; // the EXIT block is empty. Create all other blocks lazily. in buildCFG()
1535 Block = createBlock(); in buildCFG()
1547 addSuccessor(B, Block, true); in buildCFG()
1640 return Block; in addInitializer()
1659 appendInitializer(Block, I); in addInitializer()
1681 appendStmt(Block, Default); in addInitializer()
1684 Block = R; in addInitializer()
1685 return Block; in addInitializer()
1691 return Block; in addInitializer()
1739 appendLoopExit(Block, LoopStmt); in addLoopExit()
1810 appendLifetimeEnds(Block, VD, S); in addLifetimeEnds()
1813 appendLifetimeEnds(Block, VD, S); in addLifetimeEnds()
1827 appendScopeEnd(Block, VD, S); in addScopesEnd()
1856 appendScopeEnd(Block, VD, S); in addAutomaticObjDtors()
1870 Block = createNoReturnBlock(); in addAutomaticObjDtors()
1876 appendScopeEnd(Block, VD, S); in addAutomaticObjDtors()
1877 appendAutomaticObjDtor(Block, VD, S); in addAutomaticObjDtors()
1896 appendBaseDtor(Block, &VI); in addImplicitDtorsForDestructor()
1906 appendBaseDtor(Block, &BI); in addImplicitDtorsForDestructor()
1924 appendMemberDtor(Block, FI); in addImplicitDtorsForDestructor()
2139 return Block; in Visit()
2278 return Block; in Visit()
2302 return Block; in Visit()
2351 appendStmt(Block, S); in VisitStmt()
2359 CFGBlock *B = Block; in VisitChildren()
2375 appendStmt(Block, ILE); in VisitInitListExpr()
2377 CFGBlock *B = Block; in VisitInitListExpr()
2401 appendStmt(Block, A); in VisitAddrLabelExpr()
2404 return Block; in VisitAddrLabelExpr()
2426 appendStmt(Block, A); in VisitAttributedStmt()
2435 appendStmt(Block, U); in VisitUnaryOperator()
2445 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitLogicalOperator()
2497 Block = RHSBlock; in VisitLogicalOperator()
2526 Block = LHSBlock; in VisitLogicalOperator()
2556 appendStmt(Block, B); in VisitBinaryOperator()
2564 appendStmt(Block, B); in VisitBinaryOperator()
2572 appendStmt(Block, B); in VisitBinaryOperator()
2589 appendStmt(Block, E); in VisitNoRecurse()
2591 return Block; in VisitNoRecurse()
2601 Block = createBlock(false); in VisitBreakStmt()
2602 Block->setTerminator(B); in VisitBreakStmt()
2608 addSuccessor(Block, BreakJumpTarget.block); in VisitBreakStmt()
2612 return Block; in VisitBreakStmt()
2680 appendStmt(Block, C); in VisitCallExpr()
2686 appendCall(Block, C); in VisitCallExpr()
2691 if (Block) { in VisitCallExpr()
2692 Succ = Block; in VisitCallExpr()
2698 Block = createNoReturnBlock(); in VisitCallExpr()
2700 Block = createBlock(); in VisitCallExpr()
2702 appendCall(Block, C); in VisitCallExpr()
2707 addSuccessor(Block, TryTerminatedBlock); in VisitCallExpr()
2709 addSuccessor(Block, &cfg->getExit()); in VisitCallExpr()
2717 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitChooseExpr()
2724 Block = nullptr; in VisitChooseExpr()
2730 Block = nullptr; in VisitChooseExpr()
2735 Block = createBlock(false); in VisitChooseExpr()
2738 addSuccessor(Block, KnownVal.isFalse() ? nullptr : LHSBlock); in VisitChooseExpr()
2739 addSuccessor(Block, KnownVal.isTrue() ? nullptr : RHSBlock); in VisitChooseExpr()
2740 Block->setTerminator(C); in VisitChooseExpr()
2755 CFGBlock *LastBlock = Block; in VisitCompoundStmt()
2782 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitConditionalOperator()
2794 Block = nullptr; in VisitConditionalOperator()
2801 Block = nullptr; in VisitConditionalOperator()
2819 Block = createBlock(false); in VisitConditionalOperator()
2823 addSuccessor(Block, LHSBlock, !KnownVal.isFalse()); in VisitConditionalOperator()
2824 addSuccessor(Block, RHSBlock, !KnownVal.isTrue()); in VisitConditionalOperator()
2825 Block->setTerminator(C); in VisitConditionalOperator()
2846 return Block; in VisitDeclStmt()
2882 return Block; in VisitDeclSubExpr()
2885 appendStmt(Block, DS); in VisitDeclSubExpr()
2887 CFGBlock *LastBlock = Block; in VisitDeclSubExpr()
2901 return Block; in VisitDeclSubExpr()
2912 if (Block) { in VisitDeclSubExpr()
2913 Succ = Block; in VisitDeclSubExpr()
2914 Block = nullptr; in VisitDeclSubExpr()
2944 Block = VisitDeclSubExpr(DSNew); in VisitDeclSubExpr()
2950 appendStmt(Block, DS); in VisitDeclSubExpr()
2963 CFGBlock *LastBlock = Block; in VisitDeclSubExpr()
2988 maybeAddScopeBeginForVarDecl(Block, VD, DS); in VisitDeclSubExpr()
2997 Block = createBlock(false); in VisitDeclSubExpr()
2998 Block->setTerminator(DS); in VisitDeclSubExpr()
2999 addSuccessor(Block, blockAfterStaticInit); in VisitDeclSubExpr()
3000 addSuccessor(Block, B); in VisitDeclSubExpr()
3001 B = Block; in VisitDeclSubExpr()
3032 if (Block) { in VisitIfStmt()
3033 Succ = Block; in VisitIfStmt()
3046 Block = nullptr; in VisitIfStmt()
3057 else if (Block) { in VisitIfStmt()
3069 Block = nullptr; in VisitIfStmt()
3084 } else if (Block) { in VisitIfStmt()
3106 Block = createBlock(false); in VisitIfStmt()
3109 Block->setTerminator(I); in VisitIfStmt()
3118 addSuccessor(Block, ThenBlock, /* IsReachable = */ !KnownVal.isFalse()); in VisitIfStmt()
3119 addSuccessor(Block, ElseBlock, /* IsReachable = */ !KnownVal.isTrue()); in VisitIfStmt()
3153 Block = createBlock(false); in VisitReturnStmt()
3164 if (!Block->hasNoReturnElement()) in VisitReturnStmt()
3165 addSuccessor(Block, &cfg->getExit()); in VisitReturnStmt()
3168 appendStmt(Block, S); in VisitReturnStmt()
3174 return Block; in VisitReturnStmt()
3178 auto *B = Block; in VisitReturnStmt()
3198 appendStmt(Block, E); in VisitCoroutineSuspendExpr()
3200 CFGBlock *B = Block; in VisitCoroutineSuspendExpr()
3221 CFGBlock *SEHExceptBlock = Block; in VisitSEHExceptStmt()
3235 Block = nullptr; in VisitSEHExceptStmt()
3251 Block = createBlock(false); in VisitSEHLeaveStmt()
3252 Block->setTerminator(LS); in VisitSEHLeaveStmt()
3258 addSuccessor(Block, SEHLeaveJumpTarget.block); in VisitSEHLeaveStmt()
3262 return Block; in VisitSEHLeaveStmt()
3270 if (Block) { in VisitSEHTryStmt()
3273 SEHTrySuccessor = Block; in VisitSEHTryStmt()
3291 Block = nullptr; in VisitSEHTryStmt()
3318 Block = nullptr; in VisitSEHTryStmt()
3325 CFGBlock *LabelBlock = Block; in VisitLabelStmt()
3343 Block = nullptr; in VisitLabelStmt()
3391 Block = createBlock(false); in VisitGotoStmt()
3392 Block->setTerminator(G); in VisitGotoStmt()
3399 BackpatchBlocks.push_back(JumpSource(Block, ScopePos)); in VisitGotoStmt()
3403 addSuccessor(Block, JT.block); in VisitGotoStmt()
3406 return Block; in VisitGotoStmt()
3416 if (Block) { in VisitGCCAsmStmt()
3417 Succ = Block; in VisitGCCAsmStmt()
3421 Block = createBlock(); in VisitGCCAsmStmt()
3422 Block->setTerminator(G); in VisitGCCAsmStmt()
3424 BackpatchBlocks.push_back(JumpSource(Block, ScopePos)); in VisitGCCAsmStmt()
3455 if (Block) { in VisitForStmt()
3458 LoopSuccessor = Block; in VisitForStmt()
3474 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitForStmt()
3480 Block = Succ = TransitionBlock = createBlock(false); in VisitForStmt()
3490 if (Block) { in VisitForStmt()
3491 assert(Block == Succ); in VisitForStmt()
3494 Block = nullptr; in VisitForStmt()
3553 Block = ExitConditionBlock; in VisitForStmt()
3566 appendStmt(Block, DS); in VisitForStmt()
3568 assert(Block == EntryConditionBlock); in VisitForStmt()
3573 if (Block && badCFG) in VisitForStmt()
3598 Block = createBlock(); in VisitForStmt()
3604 Block = nullptr; in VisitForStmt()
3622 appendStmt(Block, M); in VisitMemberExpr()
3661 if (Block) { in VisitObjCForCollectionStmt()
3664 LoopSuccessor = Block; in VisitObjCForCollectionStmt()
3665 Block = nullptr; in VisitObjCForCollectionStmt()
3679 Block = ExitConditionBlock; in VisitObjCForCollectionStmt()
3686 if (Block) { in VisitObjCForCollectionStmt()
3689 Block = nullptr; in VisitObjCForCollectionStmt()
3699 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitObjCForCollectionStmt()
3717 else if (Block) { in VisitObjCForCollectionStmt()
3731 Block = createBlock(); in VisitObjCForCollectionStmt()
3753 Block = nullptr; in VisitObjCAtSynchronizedStmt()
3759 appendStmt(Block, S); in VisitObjCAtSynchronizedStmt()
3769 appendStmt(Block, E); in VisitPseudoObjectExpr()
3771 CFGBlock *lastBlock = Block; in VisitPseudoObjectExpr()
3808 if (Block) { in VisitWhileStmt()
3811 LoopSuccessor = Block; in VisitWhileStmt()
3812 Block = nullptr; in VisitWhileStmt()
3824 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitWhileStmt()
3850 else if (Block && badCFG) in VisitWhileStmt()
3878 Block = ExitConditionBlock; in VisitWhileStmt()
3879 Block = EntryConditionBlock = addStmt(C); in VisitWhileStmt()
3892 appendStmt(Block, DS); in VisitWhileStmt()
3894 assert(Block == EntryConditionBlock); in VisitWhileStmt()
3899 if (Block && badCFG) in VisitWhileStmt()
3918 Block = nullptr; in VisitWhileStmt()
3929 appendStmt(Block, A); in VisitArrayInitLoopExpr()
3932 CFGBlock *B = Block; in VisitArrayInitLoopExpr()
3957 CFGBlock *CatchBlock = Block; in VisitObjCAtCatchStmt()
3971 Block = nullptr; in VisitObjCAtCatchStmt()
3982 Block = createBlock(false); in VisitObjCAtThrowStmt()
3986 addSuccessor(Block, TryTerminatedBlock); in VisitObjCAtThrowStmt()
3989 addSuccessor(Block, &cfg->getExit()); in VisitObjCAtThrowStmt()
4001 if (Block) { in VisitObjCAtTryStmt()
4004 TrySuccessor = Block; in VisitObjCAtTryStmt()
4026 Block = nullptr; in VisitObjCAtTryStmt()
4051 Block = nullptr; in VisitObjCAtTryStmt()
4060 appendObjCMessage(Block, ME); in VisitObjCMessageExpr()
4071 Block = createBlock(false); in VisitCXXThrowExpr()
4075 addSuccessor(Block, TryTerminatedBlock); in VisitCXXThrowExpr()
4078 addSuccessor(Block, &cfg->getExit()); in VisitCXXThrowExpr()
4088 appendStmt(Block, S); in VisitCXXTypeidExpr()
4101 return Block; in VisitCXXTypeidExpr()
4111 if (Block) { in VisitDoStmt()
4114 LoopSuccessor = Block; in VisitDoStmt()
4130 Block = ExitConditionBlock; in VisitDoStmt()
4132 if (Block) { in VisitDoStmt()
4150 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitDoStmt()
4161 Block = nullptr; in VisitDoStmt()
4173 else if (Block) { in VisitDoStmt()
4183 Block = nullptr; in VisitDoStmt()
4201 Block = nullptr; in VisitDoStmt()
4215 Block = createBlock(false); in VisitContinueStmt()
4216 Block->setTerminator(C); in VisitContinueStmt()
4222 addSuccessor(Block, ContinueJumpTarget.block); in VisitContinueStmt()
4226 return Block; in VisitContinueStmt()
4233 appendStmt(Block, E); in VisitUnaryExprOrTypeTraitExpr()
4240 return Block; in VisitUnaryExprOrTypeTraitExpr()
4242 CFGBlock *lastBlock = Block; in VisitUnaryExprOrTypeTraitExpr()
4257 appendStmt(Block, SE); in VisitStmtExpr()
4282 if (Block) { in VisitSwitchStmt()
4285 SwitchSuccessor = Block; in VisitSwitchStmt()
4310 Block = nullptr; in VisitSwitchStmt()
4330 if (Block) { in VisitSwitchStmt()
4350 Block = SwitchTerminatedBlock; in VisitSwitchStmt()
4358 appendStmt(Block, Terminator->getConditionVariableDeclStmt()); in VisitSwitchStmt()
4440 CFGBlock *CaseBlock = Block; in VisitCaseStmt()
4459 Block = nullptr; in VisitCaseStmt()
4476 DefaultCaseBlock = Block; in VisitDefaultStmt()
4495 Block = nullptr; in VisitDefaultStmt()
4508 if (Block) { in VisitCXXTryStmt()
4511 TrySuccessor = Block; in VisitCXXTryStmt()
4530 Block = nullptr; in VisitCXXTryStmt()
4553 Block = nullptr; in VisitCXXTryStmt()
4576 CFGBlock *CatchBlock = Block; in VisitCXXCatchStmt()
4595 Block = nullptr; in VisitCXXCatchStmt()
4631 if (Block) { in VisitCXXForRangeStmt()
4634 LoopSuccessor = Block; in VisitCXXForRangeStmt()
4649 Block = ConditionBlock; in VisitCXXForRangeStmt()
4673 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitCXXForRangeStmt()
4678 Block = nullptr; in VisitCXXForRangeStmt()
4689 assert(Block); in VisitCXXForRangeStmt()
4692 Block = nullptr; in VisitCXXForRangeStmt()
4721 Block = createBlock(); in VisitCXXForRangeStmt()
4749 appendStmt(Block, E); in VisitCXXBindTemporaryExpr()
4769 appendConstructor(Block, C); in VisitCXXConstructExpr()
4777 appendStmt(Block, NE); in VisitCXXNewExpr()
4784 Block = Visit(NE->getInitializer()); in VisitCXXNewExpr()
4787 appendNewAllocator(Block, NE); in VisitCXXNewExpr()
4790 Block = Visit(*NE->getArraySize()); in VisitCXXNewExpr()
4794 Block = Visit(*I); in VisitCXXNewExpr()
4796 return Block; in VisitCXXNewExpr()
4802 appendStmt(Block, DE); in VisitCXXDeleteExpr()
4809 appendDeleteDtor(Block, RD, DE); in VisitCXXDeleteExpr()
4820 appendStmt(Block, E); in VisitCXXFunctionalCastExpr()
4835 appendConstructor(Block, C); in VisitCXXTemporaryObjectExpr()
4843 appendStmt(Block, E); in VisitImplicitCastExpr()
4870 Block = createBlock(false); in VisitIndirectGotoStmt()
4871 Block->setTerminator(I); in VisitIndirectGotoStmt()
4872 addSuccessor(Block, IBlock); in VisitIndirectGotoStmt()
4945 return Block; in VisitForTemporaryDtors()
4951 CFGBlock *B = Block; in VisitForTemporaryDtors()
4965 return Block; in VisitForTemporaryDtors()
4982 return Block; in VisitChildrenForTemporaryDtors()
4989 CFGBlock *B = Block; in VisitChildrenForTemporaryDtors()
5022 return Block; in VisitBinaryOperatorForTemporaryDtors()
5054 Block = createNoReturnBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
5059 Block = createBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
5066 appendTemporaryDtor(Block, E); in VisitCXXBindTemporaryExprForTemporaryDtors()
5068 B = Block; in VisitCXXBindTemporaryExprForTemporaryDtors()
5083 addSuccessor(Decision, Block, !Context.KnownExecuted.isFalse()); in InsertTempDtorDecisionBlock()
5086 Block = Decision; in InsertTempDtorDecisionBlock()
5093 CFGBlock *ConditionBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
5102 CFGBlock *TrueBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
5104 Block = ConditionBlock; in VisitConditionalOperatorForTemporaryDtors()
5113 Block = TrueBlock; in VisitConditionalOperatorForTemporaryDtors()
5118 return Block; in VisitConditionalOperatorForTemporaryDtors()
5125 appendStmt(Block, D); in VisitOMPExecutableDirective()
5129 CFGBlock *B = Block; in VisitOMPExecutableDirective()