Lines Matching refs:Block
493 CFGBlock *Block = nullptr; member in __anond5061b330411::CFGBuilder
722 return Block; in NYS()
762 void autoCreateBlock() { if (!Block) Block = createBlock(); } in autoCreateBlock()
1579 Block = nullptr; // the EXIT block is empty. Create all other blocks lazily. in buildCFG()
1612 Block = createBlock(); in buildCFG()
1624 addSuccessor(B, Block, true); in buildCFG()
1712 return Block; in addInitializer()
1731 appendInitializer(Block, I); in addInitializer()
1754 appendStmt(Block, Default); in addInitializer()
1757 Block = R; in addInitializer()
1758 return Block; in addInitializer()
1764 return Block; in addInitializer()
1812 appendLoopExit(Block, LoopStmt); in addLoopExit()
1889 Block = createNoReturnBlock(); in addAutomaticObjDestruction()
1898 appendLifetimeEnds(Block, VD, S); in addAutomaticObjDestruction()
1900 appendAutomaticObjDtor(Block, VD, S); in addAutomaticObjDestruction()
1902 appendCleanupFunction(Block, VD); in addAutomaticObjDestruction()
1919 appendScopeEnd(Block, B.getFirstVarInScope(), S); in addScopeExitHandling()
1941 appendLifetimeEnds(Block, VD, S); in addScopeExitHandling()
1952 assert(Block && "Source block should be always crated"); in addScopeChangesHandling()
1969 appendScopeBegin(Block, *I, S); in addScopeChangesHandling()
1994 SaveAndRestore save_Block(Block), save_Succ(Succ); in createScopeChangesHandlingBlock()
1997 Block = createBlock(false); in createScopeChangesHandlingBlock()
1998 Block->setTerminator(SrcBlk->getTerminator()); in createScopeChangesHandlingBlock()
2000 addSuccessor(Block, DstBlk); in createScopeChangesHandlingBlock()
2003 addScopeChangesHandling(SrcPos, DstPos, Block->getTerminatorStmt()); in createScopeChangesHandlingBlock()
2005 assert(Block && "There should be at least one scope changing Block"); in createScopeChangesHandlingBlock()
2006 return Block; in createScopeChangesHandlingBlock()
2024 appendBaseDtor(Block, &VI); in addImplicitDtorsForDestructor()
2034 appendBaseDtor(Block, &BI); in addImplicitDtorsForDestructor()
2053 appendMemberDtor(Block, FI); in addImplicitDtorsForDestructor()
2207 return Block; in Visit()
2345 return Block; in Visit()
2369 return Block; in Visit()
2418 appendStmt(Block, S); in VisitStmt()
2426 CFGBlock *B = Block; in VisitChildren()
2442 appendStmt(Block, ILE); in VisitInitListExpr()
2444 CFGBlock *B = Block; in VisitInitListExpr()
2468 appendStmt(Block, A); in VisitAddrLabelExpr()
2471 return Block; in VisitAddrLabelExpr()
2493 appendStmt(Block, A); in VisitAttributedStmt()
2502 appendStmt(Block, U); in VisitUnaryOperator()
2512 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitLogicalOperator()
2564 Block = RHSBlock; in VisitLogicalOperator()
2593 Block = LHSBlock; in VisitLogicalOperator()
2623 appendStmt(Block, B); in VisitBinaryOperator()
2631 appendStmt(Block, B); in VisitBinaryOperator()
2639 appendStmt(Block, B); in VisitBinaryOperator()
2656 appendStmt(Block, E); in VisitNoRecurse()
2658 return Block; in VisitNoRecurse()
2668 Block = createBlock(false); in VisitBreakStmt()
2669 Block->setTerminator(B); in VisitBreakStmt()
2675 addSuccessor(Block, BreakJumpTarget.block); in VisitBreakStmt()
2679 return Block; in VisitBreakStmt()
2747 appendStmt(Block, C); in VisitCallExpr()
2753 appendCall(Block, C); in VisitCallExpr()
2758 if (Block) { in VisitCallExpr()
2759 Succ = Block; in VisitCallExpr()
2765 Block = createNoReturnBlock(); in VisitCallExpr()
2767 Block = createBlock(); in VisitCallExpr()
2769 appendCall(Block, C); in VisitCallExpr()
2774 addSuccessor(Block, TryTerminatedBlock); in VisitCallExpr()
2776 addSuccessor(Block, &cfg->getExit()); in VisitCallExpr()
2784 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitChooseExpr()
2791 Block = nullptr; in VisitChooseExpr()
2797 Block = nullptr; in VisitChooseExpr()
2802 Block = createBlock(false); in VisitChooseExpr()
2805 addSuccessor(Block, KnownVal.isFalse() ? nullptr : LHSBlock); in VisitChooseExpr()
2806 addSuccessor(Block, KnownVal.isTrue() ? nullptr : RHSBlock); in VisitChooseExpr()
2807 Block->setTerminator(C); in VisitChooseExpr()
2822 CFGBlock *LastBlock = Block; in VisitCompoundStmt()
2849 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitConditionalOperator()
2861 Block = nullptr; in VisitConditionalOperator()
2868 Block = nullptr; in VisitConditionalOperator()
2886 Block = createBlock(false); in VisitConditionalOperator()
2890 addSuccessor(Block, LHSBlock, !KnownVal.isFalse()); in VisitConditionalOperator()
2891 addSuccessor(Block, RHSBlock, !KnownVal.isTrue()); in VisitConditionalOperator()
2892 Block->setTerminator(C); in VisitConditionalOperator()
2913 return Block; in VisitDeclStmt()
2949 return Block; in VisitDeclSubExpr()
2952 appendStmt(Block, DS); in VisitDeclSubExpr()
2954 CFGBlock *LastBlock = Block; in VisitDeclSubExpr()
2968 return Block; in VisitDeclSubExpr()
2979 if (Block) { in VisitDeclSubExpr()
2980 Succ = Block; in VisitDeclSubExpr()
2981 Block = nullptr; in VisitDeclSubExpr()
3011 Block = VisitDeclSubExpr(DSNew); in VisitDeclSubExpr()
3017 appendStmt(Block, DS); in VisitDeclSubExpr()
3030 CFGBlock *LastBlock = Block; in VisitDeclSubExpr()
3055 maybeAddScopeBeginForVarDecl(Block, VD, DS); in VisitDeclSubExpr()
3064 Block = createBlock(false); in VisitDeclSubExpr()
3065 Block->setTerminator(DS); in VisitDeclSubExpr()
3066 addSuccessor(Block, blockAfterStaticInit); in VisitDeclSubExpr()
3067 addSuccessor(Block, B); in VisitDeclSubExpr()
3068 B = Block; in VisitDeclSubExpr()
3099 if (Block) { in VisitIfStmt()
3100 Succ = Block; in VisitIfStmt()
3113 Block = nullptr; in VisitIfStmt()
3124 else if (Block) { in VisitIfStmt()
3136 Block = nullptr; in VisitIfStmt()
3151 } else if (Block) { in VisitIfStmt()
3173 Block = createBlock(false); in VisitIfStmt()
3176 Block->setTerminator(I); in VisitIfStmt()
3185 addSuccessor(Block, ThenBlock, /* IsReachable = */ !KnownVal.isFalse()); in VisitIfStmt()
3186 addSuccessor(Block, ElseBlock, /* IsReachable = */ !KnownVal.isTrue()); in VisitIfStmt()
3220 Block = createBlock(false); in VisitReturnStmt()
3231 if (!Block->hasNoReturnElement()) in VisitReturnStmt()
3232 addSuccessor(Block, &cfg->getExit()); in VisitReturnStmt()
3235 appendStmt(Block, S); in VisitReturnStmt()
3241 return Block; in VisitReturnStmt()
3245 auto *B = Block; in VisitReturnStmt()
3265 appendStmt(Block, E); in VisitCoroutineSuspendExpr()
3267 CFGBlock *B = Block; in VisitCoroutineSuspendExpr()
3288 CFGBlock *SEHExceptBlock = Block; in VisitSEHExceptStmt()
3302 Block = nullptr; in VisitSEHExceptStmt()
3318 Block = createBlock(false); in VisitSEHLeaveStmt()
3319 Block->setTerminator(LS); in VisitSEHLeaveStmt()
3325 addSuccessor(Block, SEHLeaveJumpTarget.block); in VisitSEHLeaveStmt()
3329 return Block; in VisitSEHLeaveStmt()
3337 if (Block) { in VisitSEHTryStmt()
3340 SEHTrySuccessor = Block; in VisitSEHTryStmt()
3358 Block = nullptr; in VisitSEHTryStmt()
3385 Block = nullptr; in VisitSEHTryStmt()
3392 CFGBlock *LabelBlock = Block; in VisitLabelStmt()
3409 Block = nullptr; in VisitLabelStmt()
3458 Block = createBlock(false); in VisitGotoStmt()
3459 Block->setTerminator(G); in VisitGotoStmt()
3466 BackpatchBlocks.push_back(JumpSource(Block, ScopePos)); in VisitGotoStmt()
3469 addSuccessor(Block, JT.block); in VisitGotoStmt()
3473 return Block; in VisitGotoStmt()
3483 if (Block) { in VisitGCCAsmStmt()
3484 Succ = Block; in VisitGCCAsmStmt()
3488 Block = createBlock(); in VisitGCCAsmStmt()
3489 Block->setTerminator(G); in VisitGCCAsmStmt()
3491 BackpatchBlocks.push_back(JumpSource(Block, ScopePos)); in VisitGCCAsmStmt()
3522 if (Block) { in VisitForStmt()
3525 LoopSuccessor = Block; in VisitForStmt()
3541 SaveAndRestore save_Block(Block), save_Succ(Succ); in VisitForStmt()
3547 Block = Succ = TransitionBlock = createBlock(false); in VisitForStmt()
3562 if (Block) { in VisitForStmt()
3563 assert(Block == Succ); in VisitForStmt()
3566 Block = nullptr; in VisitForStmt()
3623 Block = ExitConditionBlock; in VisitForStmt()
3636 appendStmt(Block, DS); in VisitForStmt()
3638 assert(Block == EntryConditionBlock); in VisitForStmt()
3643 if (Block && badCFG) in VisitForStmt()
3668 Block = createBlock(); in VisitForStmt()
3674 Block = nullptr; in VisitForStmt()
3692 appendStmt(Block, M); in VisitMemberExpr()
3731 if (Block) { in VisitObjCForCollectionStmt()
3734 LoopSuccessor = Block; in VisitObjCForCollectionStmt()
3735 Block = nullptr; in VisitObjCForCollectionStmt()
3749 Block = ExitConditionBlock; in VisitObjCForCollectionStmt()
3756 if (Block) { in VisitObjCForCollectionStmt()
3759 Block = nullptr; in VisitObjCForCollectionStmt()
3769 SaveAndRestore save_Block(Block), save_Succ(Succ); in VisitObjCForCollectionStmt()
3787 else if (Block) { in VisitObjCForCollectionStmt()
3801 Block = createBlock(); in VisitObjCForCollectionStmt()
3823 Block = nullptr; in VisitObjCAtSynchronizedStmt()
3829 appendStmt(Block, S); in VisitObjCAtSynchronizedStmt()
3839 appendStmt(Block, E); in VisitPseudoObjectExpr()
3841 CFGBlock *lastBlock = Block; in VisitPseudoObjectExpr()
3878 if (Block) { in VisitWhileStmt()
3881 LoopSuccessor = Block; in VisitWhileStmt()
3882 Block = nullptr; in VisitWhileStmt()
3894 SaveAndRestore save_Block(Block), save_Succ(Succ); in VisitWhileStmt()
3920 else if (Block && badCFG) in VisitWhileStmt()
3948 Block = ExitConditionBlock; in VisitWhileStmt()
3949 Block = EntryConditionBlock = addStmt(C); in VisitWhileStmt()
3962 appendStmt(Block, DS); in VisitWhileStmt()
3964 assert(Block == EntryConditionBlock); in VisitWhileStmt()
3969 if (Block && badCFG) in VisitWhileStmt()
3988 Block = nullptr; in VisitWhileStmt()
3999 appendStmt(Block, A); in VisitArrayInitLoopExpr()
4002 CFGBlock *B = Block; in VisitArrayInitLoopExpr()
4027 CFGBlock *CatchBlock = Block; in VisitObjCAtCatchStmt()
4041 Block = nullptr; in VisitObjCAtCatchStmt()
4052 Block = createBlock(false); in VisitObjCAtThrowStmt()
4056 addSuccessor(Block, TryTerminatedBlock); in VisitObjCAtThrowStmt()
4059 addSuccessor(Block, &cfg->getExit()); in VisitObjCAtThrowStmt()
4071 if (Block) { in VisitObjCAtTryStmt()
4074 TrySuccessor = Block; in VisitObjCAtTryStmt()
4096 Block = nullptr; in VisitObjCAtTryStmt()
4121 Block = nullptr; in VisitObjCAtTryStmt()
4130 appendObjCMessage(Block, ME); in VisitObjCMessageExpr()
4141 Block = createBlock(false); in VisitCXXThrowExpr()
4145 addSuccessor(Block, TryTerminatedBlock); in VisitCXXThrowExpr()
4148 addSuccessor(Block, &cfg->getExit()); in VisitCXXThrowExpr()
4158 appendStmt(Block, S); in VisitCXXTypeidExpr()
4171 return Block; in VisitCXXTypeidExpr()
4181 if (Block) { in VisitDoStmt()
4184 LoopSuccessor = Block; in VisitDoStmt()
4200 Block = ExitConditionBlock; in VisitDoStmt()
4202 if (Block) { in VisitDoStmt()
4220 SaveAndRestore save_Block(Block), save_Succ(Succ); in VisitDoStmt()
4231 Block = nullptr; in VisitDoStmt()
4243 else if (Block) { in VisitDoStmt()
4253 Block = nullptr; in VisitDoStmt()
4271 Block = nullptr; in VisitDoStmt()
4285 Block = createBlock(false); in VisitContinueStmt()
4286 Block->setTerminator(C); in VisitContinueStmt()
4292 addSuccessor(Block, ContinueJumpTarget.block); in VisitContinueStmt()
4296 return Block; in VisitContinueStmt()
4303 appendStmt(Block, E); in VisitUnaryExprOrTypeTraitExpr()
4310 return Block; in VisitUnaryExprOrTypeTraitExpr()
4312 CFGBlock *lastBlock = Block; in VisitUnaryExprOrTypeTraitExpr()
4327 appendStmt(Block, SE); in VisitStmtExpr()
4352 if (Block) { in VisitSwitchStmt()
4355 SwitchSuccessor = Block; in VisitSwitchStmt()
4380 Block = nullptr; in VisitSwitchStmt()
4398 if (Block) { in VisitSwitchStmt()
4418 Block = SwitchTerminatedBlock; in VisitSwitchStmt()
4426 appendStmt(Block, Terminator->getConditionVariableDeclStmt()); in VisitSwitchStmt()
4508 CFGBlock *CaseBlock = Block; in VisitCaseStmt()
4527 Block = nullptr; in VisitCaseStmt()
4544 DefaultCaseBlock = Block; in VisitDefaultStmt()
4563 Block = nullptr; in VisitDefaultStmt()
4576 if (Block) { in VisitCXXTryStmt()
4579 TrySuccessor = Block; in VisitCXXTryStmt()
4598 Block = nullptr; in VisitCXXTryStmt()
4621 Block = nullptr; in VisitCXXTryStmt()
4644 CFGBlock *CatchBlock = Block; in VisitCXXCatchStmt()
4663 Block = nullptr; in VisitCXXCatchStmt()
4699 if (Block) { in VisitCXXForRangeStmt()
4702 LoopSuccessor = Block; in VisitCXXForRangeStmt()
4717 Block = ConditionBlock; in VisitCXXForRangeStmt()
4741 SaveAndRestore save_Block(Block), save_Succ(Succ); in VisitCXXForRangeStmt()
4746 Block = nullptr; in VisitCXXForRangeStmt()
4757 assert(Block); in VisitCXXForRangeStmt()
4760 Block = nullptr; in VisitCXXForRangeStmt()
4789 Block = createBlock(); in VisitCXXForRangeStmt()
4817 appendStmt(Block, E); in VisitCXXBindTemporaryExpr()
4837 appendConstructor(Block, C); in VisitCXXConstructExpr()
4845 appendStmt(Block, NE); in VisitCXXNewExpr()
4852 Block = Visit(NE->getInitializer()); in VisitCXXNewExpr()
4855 appendNewAllocator(Block, NE); in VisitCXXNewExpr()
4858 Block = Visit(*NE->getArraySize()); in VisitCXXNewExpr()
4862 Block = Visit(*I); in VisitCXXNewExpr()
4864 return Block; in VisitCXXNewExpr()
4870 appendStmt(Block, DE); in VisitCXXDeleteExpr()
4877 appendDeleteDtor(Block, RD, DE); in VisitCXXDeleteExpr()
4888 appendStmt(Block, E); in VisitCXXFunctionalCastExpr()
4903 appendConstructor(Block, C); in VisitCXXTemporaryObjectExpr()
4911 appendStmt(Block, E); in VisitImplicitCastExpr()
4938 Block = createBlock(false); in VisitIndirectGotoStmt()
4939 Block->setTerminator(I); in VisitIndirectGotoStmt()
4940 addSuccessor(Block, IBlock); in VisitIndirectGotoStmt()
5013 return Block; in VisitForTemporaryDtors()
5019 CFGBlock *B = Block; in VisitForTemporaryDtors()
5033 return Block; in VisitForTemporaryDtors()
5050 return Block; in VisitChildrenForTemporaryDtors()
5057 CFGBlock *B = Block; in VisitChildrenForTemporaryDtors()
5090 return Block; in VisitBinaryOperatorForTemporaryDtors()
5122 Block = createNoReturnBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
5127 Block = createBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
5134 appendTemporaryDtor(Block, E); in VisitCXXBindTemporaryExprForTemporaryDtors()
5136 B = Block; in VisitCXXBindTemporaryExprForTemporaryDtors()
5151 addSuccessor(Decision, Block, !Context.KnownExecuted.isFalse()); in InsertTempDtorDecisionBlock()
5154 Block = Decision; in InsertTempDtorDecisionBlock()
5161 CFGBlock *ConditionBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
5170 CFGBlock *TrueBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
5172 Block = ConditionBlock; in VisitConditionalOperatorForTemporaryDtors()
5181 Block = TrueBlock; in VisitConditionalOperatorForTemporaryDtors()
5186 return Block; in VisitConditionalOperatorForTemporaryDtors()
5193 appendStmt(Block, D); in VisitOMPExecutableDirective()
5197 CFGBlock *B = Block; in VisitOMPExecutableDirective()