Lines Matching refs:Block
474 CFGBlock *Block = nullptr; member in __anon654da8e80411::CFGBuilder
701 return Block; in NYS()
741 void autoCreateBlock() { if (!Block) Block = createBlock(); } in autoCreateBlock()
1488 Block = nullptr; // the EXIT block is empty. Create all other blocks lazily. in buildCFG()
1524 Block = createBlock(); in buildCFG()
1536 addSuccessor(B, Block, true); in buildCFG()
1629 return Block; in addInitializer()
1648 appendInitializer(Block, I); in addInitializer()
1666 appendStmt(Block, Default); in addInitializer()
1669 Block = R; in addInitializer()
1670 return Block; in addInitializer()
1676 return Block; in addInitializer()
1724 appendLoopExit(Block, LoopStmt); in addLoopExit()
1797 appendLifetimeEnds(Block, *I, S); in addLifetimeEnds()
1803 appendLifetimeEnds(Block, *I, S); in addLifetimeEnds()
1818 appendScopeEnd(Block, *I, S); in addScopesEnd()
1851 appendScopeEnd(Block, *I, S); in addAutomaticObjDtors()
1865 Block = createNoReturnBlock(); in addAutomaticObjDtors()
1871 appendScopeEnd(Block, *I, S); in addAutomaticObjDtors()
1872 appendAutomaticObjDtor(Block, *I, S); in addAutomaticObjDtors()
1891 appendBaseDtor(Block, &VI); in addImplicitDtorsForDestructor()
1901 appendBaseDtor(Block, &BI); in addImplicitDtorsForDestructor()
1919 appendMemberDtor(Block, FI); in addImplicitDtorsForDestructor()
2139 return Block; in Visit()
2272 return Block; in Visit()
2296 return Block; in Visit()
2338 appendStmt(Block, S); in VisitStmt()
2346 CFGBlock *B = Block; in VisitChildren()
2362 appendStmt(Block, ILE); in VisitInitListExpr()
2364 CFGBlock *B = Block; in VisitInitListExpr()
2388 appendStmt(Block, A); in VisitAddrLabelExpr()
2391 return Block; in VisitAddrLabelExpr()
2398 appendStmt(Block, U); in VisitUnaryOperator()
2408 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitLogicalOperator()
2460 Block = RHSBlock; in VisitLogicalOperator()
2489 Block = LHSBlock; in VisitLogicalOperator()
2519 appendStmt(Block, B); in VisitBinaryOperator()
2527 appendStmt(Block, B); in VisitBinaryOperator()
2535 appendStmt(Block, B); in VisitBinaryOperator()
2552 appendStmt(Block, E); in VisitNoRecurse()
2554 return Block; in VisitNoRecurse()
2564 Block = createBlock(false); in VisitBreakStmt()
2565 Block->setTerminator(B); in VisitBreakStmt()
2571 addSuccessor(Block, BreakJumpTarget.block); in VisitBreakStmt()
2575 return Block; in VisitBreakStmt()
2643 appendStmt(Block, C); in VisitCallExpr()
2649 appendCall(Block, C); in VisitCallExpr()
2654 if (Block) { in VisitCallExpr()
2655 Succ = Block; in VisitCallExpr()
2661 Block = createNoReturnBlock(); in VisitCallExpr()
2663 Block = createBlock(); in VisitCallExpr()
2665 appendCall(Block, C); in VisitCallExpr()
2670 addSuccessor(Block, TryTerminatedBlock); in VisitCallExpr()
2672 addSuccessor(Block, &cfg->getExit()); in VisitCallExpr()
2680 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitChooseExpr()
2687 Block = nullptr; in VisitChooseExpr()
2693 Block = nullptr; in VisitChooseExpr()
2698 Block = createBlock(false); in VisitChooseExpr()
2701 addSuccessor(Block, KnownVal.isFalse() ? nullptr : LHSBlock); in VisitChooseExpr()
2702 addSuccessor(Block, KnownVal.isTrue() ? nullptr : RHSBlock); in VisitChooseExpr()
2703 Block->setTerminator(C); in VisitChooseExpr()
2717 CFGBlock *LastBlock = Block; in VisitCompoundStmt()
2745 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitConditionalOperator()
2757 Block = nullptr; in VisitConditionalOperator()
2764 Block = nullptr; in VisitConditionalOperator()
2782 Block = createBlock(false); in VisitConditionalOperator()
2786 addSuccessor(Block, LHSBlock, !KnownVal.isFalse()); in VisitConditionalOperator()
2787 addSuccessor(Block, RHSBlock, !KnownVal.isTrue()); in VisitConditionalOperator()
2788 Block->setTerminator(C); in VisitConditionalOperator()
2809 return Block; in VisitDeclStmt()
2845 return Block; in VisitDeclSubExpr()
2848 appendStmt(Block, DS); in VisitDeclSubExpr()
2850 CFGBlock *LastBlock = Block; in VisitDeclSubExpr()
2864 return Block; in VisitDeclSubExpr()
2875 if (Block) { in VisitDeclSubExpr()
2876 Succ = Block; in VisitDeclSubExpr()
2877 Block = nullptr; in VisitDeclSubExpr()
2899 appendStmt(Block, DS); in VisitDeclSubExpr()
2908 CFGBlock *LastBlock = Block; in VisitDeclSubExpr()
2933 maybeAddScopeBeginForVarDecl(Block, VD, DS); in VisitDeclSubExpr()
2942 Block = createBlock(false); in VisitDeclSubExpr()
2943 Block->setTerminator(DS); in VisitDeclSubExpr()
2944 addSuccessor(Block, blockAfterStaticInit); in VisitDeclSubExpr()
2945 addSuccessor(Block, B); in VisitDeclSubExpr()
2946 B = Block; in VisitDeclSubExpr()
2977 if (Block) { in VisitIfStmt()
2978 Succ = Block; in VisitIfStmt()
2991 Block = nullptr; in VisitIfStmt()
3002 else if (Block) { in VisitIfStmt()
3014 Block = nullptr; in VisitIfStmt()
3029 } else if (Block) { in VisitIfStmt()
3051 Block = createBlock(false); in VisitIfStmt()
3054 Block->setTerminator(I); in VisitIfStmt()
3061 addSuccessor(Block, ThenBlock, /* IsReachable = */ !KnownVal.isFalse()); in VisitIfStmt()
3062 addSuccessor(Block, ElseBlock, /* IsReachable = */ !KnownVal.isTrue()); in VisitIfStmt()
3096 Block = createBlock(false); in VisitReturnStmt()
3107 if (!Block->hasNoReturnElement()) in VisitReturnStmt()
3108 addSuccessor(Block, &cfg->getExit()); in VisitReturnStmt()
3111 appendStmt(Block, S); in VisitReturnStmt()
3117 return Block; in VisitReturnStmt()
3132 CFGBlock *SEHExceptBlock = Block; in VisitSEHExceptStmt()
3146 Block = nullptr; in VisitSEHExceptStmt()
3162 Block = createBlock(false); in VisitSEHLeaveStmt()
3163 Block->setTerminator(LS); in VisitSEHLeaveStmt()
3169 addSuccessor(Block, SEHLeaveJumpTarget.block); in VisitSEHLeaveStmt()
3173 return Block; in VisitSEHLeaveStmt()
3181 if (Block) { in VisitSEHTryStmt()
3184 SEHTrySuccessor = Block; in VisitSEHTryStmt()
3202 Block = nullptr; in VisitSEHTryStmt()
3230 Block = nullptr; in VisitSEHTryStmt()
3237 CFGBlock *LabelBlock = Block; in VisitLabelStmt()
3255 Block = nullptr; in VisitLabelStmt()
3292 Block = createBlock(false); in VisitGotoStmt()
3293 Block->setTerminator(G); in VisitGotoStmt()
3300 BackpatchBlocks.push_back(JumpSource(Block, ScopePos)); in VisitGotoStmt()
3304 addSuccessor(Block, JT.block); in VisitGotoStmt()
3307 return Block; in VisitGotoStmt()
3317 if (Block) { in VisitGCCAsmStmt()
3318 Succ = Block; in VisitGCCAsmStmt()
3322 Block = createBlock(); in VisitGCCAsmStmt()
3323 Block->setTerminator(G); in VisitGCCAsmStmt()
3325 BackpatchBlocks.push_back(JumpSource(Block, ScopePos)); in VisitGCCAsmStmt()
3329 return Block; in VisitGCCAsmStmt()
3356 if (Block) { in VisitForStmt()
3359 LoopSuccessor = Block; in VisitForStmt()
3375 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitForStmt()
3381 Block = Succ = TransitionBlock = createBlock(false); in VisitForStmt()
3391 if (Block) { in VisitForStmt()
3392 assert(Block == Succ); in VisitForStmt()
3395 Block = nullptr; in VisitForStmt()
3454 Block = ExitConditionBlock; in VisitForStmt()
3467 appendStmt(Block, DS); in VisitForStmt()
3469 assert(Block == EntryConditionBlock); in VisitForStmt()
3474 if (Block && badCFG) in VisitForStmt()
3499 Block = createBlock(); in VisitForStmt()
3505 Block = nullptr; in VisitForStmt()
3523 appendStmt(Block, M); in VisitMemberExpr()
3562 if (Block) { in VisitObjCForCollectionStmt()
3565 LoopSuccessor = Block; in VisitObjCForCollectionStmt()
3566 Block = nullptr; in VisitObjCForCollectionStmt()
3580 Block = ExitConditionBlock; in VisitObjCForCollectionStmt()
3587 if (Block) { in VisitObjCForCollectionStmt()
3590 Block = nullptr; in VisitObjCForCollectionStmt()
3600 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitObjCForCollectionStmt()
3618 else if (Block) { in VisitObjCForCollectionStmt()
3632 Block = createBlock(); in VisitObjCForCollectionStmt()
3654 Block = nullptr; in VisitObjCAtSynchronizedStmt()
3660 appendStmt(Block, S); in VisitObjCAtSynchronizedStmt()
3675 appendStmt(Block, E); in VisitPseudoObjectExpr()
3677 CFGBlock *lastBlock = Block; in VisitPseudoObjectExpr()
3714 if (Block) { in VisitWhileStmt()
3717 LoopSuccessor = Block; in VisitWhileStmt()
3718 Block = nullptr; in VisitWhileStmt()
3730 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitWhileStmt()
3756 else if (Block && badCFG) in VisitWhileStmt()
3784 Block = ExitConditionBlock; in VisitWhileStmt()
3785 Block = EntryConditionBlock = addStmt(C); in VisitWhileStmt()
3798 appendStmt(Block, DS); in VisitWhileStmt()
3800 assert(Block == EntryConditionBlock); in VisitWhileStmt()
3805 if (Block && badCFG) in VisitWhileStmt()
3824 Block = nullptr; in VisitWhileStmt()
3834 return Block; in VisitObjCAtCatchStmt()
3846 Block = createBlock(false); in VisitObjCAtThrowStmt()
3849 addSuccessor(Block, &cfg->getExit()); in VisitObjCAtThrowStmt()
3861 appendObjCMessage(Block, ME); in VisitObjCMessageExpr()
3872 Block = createBlock(false); in VisitCXXThrowExpr()
3876 addSuccessor(Block, TryTerminatedBlock); in VisitCXXThrowExpr()
3879 addSuccessor(Block, &cfg->getExit()); in VisitCXXThrowExpr()
3893 if (Block) { in VisitDoStmt()
3896 LoopSuccessor = Block; in VisitDoStmt()
3912 Block = ExitConditionBlock; in VisitDoStmt()
3914 if (Block) { in VisitDoStmt()
3932 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitDoStmt()
3943 Block = nullptr; in VisitDoStmt()
3955 else if (Block) { in VisitDoStmt()
3965 Block = nullptr; in VisitDoStmt()
3983 Block = nullptr; in VisitDoStmt()
3997 Block = createBlock(false); in VisitContinueStmt()
3998 Block->setTerminator(C); in VisitContinueStmt()
4004 addSuccessor(Block, ContinueJumpTarget.block); in VisitContinueStmt()
4008 return Block; in VisitContinueStmt()
4015 appendStmt(Block, E); in VisitUnaryExprOrTypeTraitExpr()
4022 return Block; in VisitUnaryExprOrTypeTraitExpr()
4024 CFGBlock *lastBlock = Block; in VisitUnaryExprOrTypeTraitExpr()
4039 appendStmt(Block, SE); in VisitStmtExpr()
4064 if (Block) { in VisitSwitchStmt()
4067 SwitchSuccessor = Block; in VisitSwitchStmt()
4092 Block = nullptr; in VisitSwitchStmt()
4112 if (Block) { in VisitSwitchStmt()
4132 Block = SwitchTerminatedBlock; in VisitSwitchStmt()
4140 appendStmt(Block, Terminator->getConditionVariableDeclStmt()); in VisitSwitchStmt()
4222 CFGBlock *CaseBlock = Block; in VisitCaseStmt()
4241 Block = nullptr; in VisitCaseStmt()
4258 DefaultCaseBlock = Block; in VisitDefaultStmt()
4277 Block = nullptr; in VisitDefaultStmt()
4290 if (Block) { in VisitCXXTryStmt()
4293 TrySuccessor = Block; in VisitCXXTryStmt()
4311 Block = nullptr; in VisitCXXTryStmt()
4334 Block = nullptr; in VisitCXXTryStmt()
4357 CFGBlock *CatchBlock = Block; in VisitCXXCatchStmt()
4376 Block = nullptr; in VisitCXXCatchStmt()
4412 if (Block) { in VisitCXXForRangeStmt()
4415 LoopSuccessor = Block; in VisitCXXForRangeStmt()
4430 Block = ConditionBlock; in VisitCXXForRangeStmt()
4454 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitCXXForRangeStmt()
4459 Block = nullptr; in VisitCXXForRangeStmt()
4470 assert(Block); in VisitCXXForRangeStmt()
4473 Block = nullptr; in VisitCXXForRangeStmt()
4502 Block = createBlock(); in VisitCXXForRangeStmt()
4530 appendStmt(Block, E); in VisitCXXBindTemporaryExpr()
4550 appendConstructor(Block, C); in VisitCXXConstructExpr()
4558 appendStmt(Block, NE); in VisitCXXNewExpr()
4565 Block = Visit(NE->getInitializer()); in VisitCXXNewExpr()
4568 appendNewAllocator(Block, NE); in VisitCXXNewExpr()
4571 Block = Visit(*NE->getArraySize()); in VisitCXXNewExpr()
4575 Block = Visit(*I); in VisitCXXNewExpr()
4577 return Block; in VisitCXXNewExpr()
4583 appendStmt(Block, DE); in VisitCXXDeleteExpr()
4590 appendDeleteDtor(Block, RD, DE); in VisitCXXDeleteExpr()
4601 appendStmt(Block, E); in VisitCXXFunctionalCastExpr()
4616 appendConstructor(Block, C); in VisitCXXTemporaryObjectExpr()
4624 appendStmt(Block, E); in VisitImplicitCastExpr()
4651 Block = createBlock(false); in VisitIndirectGotoStmt()
4652 Block->setTerminator(I); in VisitIndirectGotoStmt()
4653 addSuccessor(Block, IBlock); in VisitIndirectGotoStmt()
4726 return Block; in VisitForTemporaryDtors()
4732 CFGBlock *B = Block; in VisitForTemporaryDtors()
4746 return Block; in VisitForTemporaryDtors()
4763 return Block; in VisitChildrenForTemporaryDtors()
4770 CFGBlock *B = Block; in VisitChildrenForTemporaryDtors()
4803 return Block; in VisitBinaryOperatorForTemporaryDtors()
4835 Block = createNoReturnBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
4840 Block = createBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
4847 appendTemporaryDtor(Block, E); in VisitCXXBindTemporaryExprForTemporaryDtors()
4849 B = Block; in VisitCXXBindTemporaryExprForTemporaryDtors()
4864 addSuccessor(Decision, Block, !Context.KnownExecuted.isFalse()); in InsertTempDtorDecisionBlock()
4867 Block = Decision; in InsertTempDtorDecisionBlock()
4874 CFGBlock *ConditionBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
4883 CFGBlock *TrueBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
4885 Block = ConditionBlock; in VisitConditionalOperatorForTemporaryDtors()
4894 Block = TrueBlock; in VisitConditionalOperatorForTemporaryDtors()
4899 return Block; in VisitConditionalOperatorForTemporaryDtors()
4906 appendStmt(Block, D); in VisitOMPExecutableDirective()
4910 CFGBlock *B = Block; in VisitOMPExecutableDirective()