Lines Matching refs:Block

477   CFGBlock *Block = nullptr;  member in __anon76ebc3340411::CFGBuilder
709 return Block; in NYS()
749 void autoCreateBlock() { if (!Block) Block = createBlock(); } in autoCreateBlock()
1557 Block = nullptr; // the EXIT block is empty. Create all other blocks lazily. in buildCFG()
1593 Block = createBlock(); in buildCFG()
1605 addSuccessor(B, Block, true); in buildCFG()
1698 return Block; in addInitializer()
1717 appendInitializer(Block, I); in addInitializer()
1740 appendStmt(Block, Default); in addInitializer()
1743 Block = R; in addInitializer()
1744 return Block; in addInitializer()
1750 return Block; in addInitializer()
1798 appendLoopExit(Block, LoopStmt); in addLoopExit()
1869 appendLifetimeEnds(Block, VD, S); in addLifetimeEnds()
1872 appendLifetimeEnds(Block, VD, S); in addLifetimeEnds()
1886 appendScopeEnd(Block, VD, S); in addScopesEnd()
1915 appendScopeEnd(Block, VD, S); in addAutomaticObjDtors()
1929 Block = createNoReturnBlock(); in addAutomaticObjDtors()
1935 appendScopeEnd(Block, VD, S); in addAutomaticObjDtors()
1936 appendAutomaticObjDtor(Block, VD, S); in addAutomaticObjDtors()
1955 appendBaseDtor(Block, &VI); in addImplicitDtorsForDestructor()
1965 appendBaseDtor(Block, &BI); in addImplicitDtorsForDestructor()
1984 appendMemberDtor(Block, FI); in addImplicitDtorsForDestructor()
2199 return Block; in Visit()
2338 return Block; in Visit()
2362 return Block; in Visit()
2411 appendStmt(Block, S); in VisitStmt()
2419 CFGBlock *B = Block; in VisitChildren()
2435 appendStmt(Block, ILE); in VisitInitListExpr()
2437 CFGBlock *B = Block; in VisitInitListExpr()
2461 appendStmt(Block, A); in VisitAddrLabelExpr()
2464 return Block; in VisitAddrLabelExpr()
2486 appendStmt(Block, A); in VisitAttributedStmt()
2495 appendStmt(Block, U); in VisitUnaryOperator()
2505 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitLogicalOperator()
2557 Block = RHSBlock; in VisitLogicalOperator()
2586 Block = LHSBlock; in VisitLogicalOperator()
2616 appendStmt(Block, B); in VisitBinaryOperator()
2624 appendStmt(Block, B); in VisitBinaryOperator()
2632 appendStmt(Block, B); in VisitBinaryOperator()
2649 appendStmt(Block, E); in VisitNoRecurse()
2651 return Block; in VisitNoRecurse()
2661 Block = createBlock(false); in VisitBreakStmt()
2662 Block->setTerminator(B); in VisitBreakStmt()
2668 addSuccessor(Block, BreakJumpTarget.block); in VisitBreakStmt()
2672 return Block; in VisitBreakStmt()
2740 appendStmt(Block, C); in VisitCallExpr()
2746 appendCall(Block, C); in VisitCallExpr()
2751 if (Block) { in VisitCallExpr()
2752 Succ = Block; in VisitCallExpr()
2758 Block = createNoReturnBlock(); in VisitCallExpr()
2760 Block = createBlock(); in VisitCallExpr()
2762 appendCall(Block, C); in VisitCallExpr()
2767 addSuccessor(Block, TryTerminatedBlock); in VisitCallExpr()
2769 addSuccessor(Block, &cfg->getExit()); in VisitCallExpr()
2777 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitChooseExpr()
2784 Block = nullptr; in VisitChooseExpr()
2790 Block = nullptr; in VisitChooseExpr()
2795 Block = createBlock(false); in VisitChooseExpr()
2798 addSuccessor(Block, KnownVal.isFalse() ? nullptr : LHSBlock); in VisitChooseExpr()
2799 addSuccessor(Block, KnownVal.isTrue() ? nullptr : RHSBlock); in VisitChooseExpr()
2800 Block->setTerminator(C); in VisitChooseExpr()
2815 CFGBlock *LastBlock = Block; in VisitCompoundStmt()
2842 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitConditionalOperator()
2854 Block = nullptr; in VisitConditionalOperator()
2861 Block = nullptr; in VisitConditionalOperator()
2879 Block = createBlock(false); in VisitConditionalOperator()
2883 addSuccessor(Block, LHSBlock, !KnownVal.isFalse()); in VisitConditionalOperator()
2884 addSuccessor(Block, RHSBlock, !KnownVal.isTrue()); in VisitConditionalOperator()
2885 Block->setTerminator(C); in VisitConditionalOperator()
2906 return Block; in VisitDeclStmt()
2942 return Block; in VisitDeclSubExpr()
2945 appendStmt(Block, DS); in VisitDeclSubExpr()
2947 CFGBlock *LastBlock = Block; in VisitDeclSubExpr()
2961 return Block; in VisitDeclSubExpr()
2972 if (Block) { in VisitDeclSubExpr()
2973 Succ = Block; in VisitDeclSubExpr()
2974 Block = nullptr; in VisitDeclSubExpr()
3004 Block = VisitDeclSubExpr(DSNew); in VisitDeclSubExpr()
3010 appendStmt(Block, DS); in VisitDeclSubExpr()
3023 CFGBlock *LastBlock = Block; in VisitDeclSubExpr()
3048 maybeAddScopeBeginForVarDecl(Block, VD, DS); in VisitDeclSubExpr()
3057 Block = createBlock(false); in VisitDeclSubExpr()
3058 Block->setTerminator(DS); in VisitDeclSubExpr()
3059 addSuccessor(Block, blockAfterStaticInit); in VisitDeclSubExpr()
3060 addSuccessor(Block, B); in VisitDeclSubExpr()
3061 B = Block; in VisitDeclSubExpr()
3092 if (Block) { in VisitIfStmt()
3093 Succ = Block; in VisitIfStmt()
3106 Block = nullptr; in VisitIfStmt()
3117 else if (Block) { in VisitIfStmt()
3129 Block = nullptr; in VisitIfStmt()
3144 } else if (Block) { in VisitIfStmt()
3166 Block = createBlock(false); in VisitIfStmt()
3169 Block->setTerminator(I); in VisitIfStmt()
3178 addSuccessor(Block, ThenBlock, /* IsReachable = */ !KnownVal.isFalse()); in VisitIfStmt()
3179 addSuccessor(Block, ElseBlock, /* IsReachable = */ !KnownVal.isTrue()); in VisitIfStmt()
3213 Block = createBlock(false); in VisitReturnStmt()
3224 if (!Block->hasNoReturnElement()) in VisitReturnStmt()
3225 addSuccessor(Block, &cfg->getExit()); in VisitReturnStmt()
3228 appendStmt(Block, S); in VisitReturnStmt()
3234 return Block; in VisitReturnStmt()
3238 auto *B = Block; in VisitReturnStmt()
3258 appendStmt(Block, E); in VisitCoroutineSuspendExpr()
3260 CFGBlock *B = Block; in VisitCoroutineSuspendExpr()
3281 CFGBlock *SEHExceptBlock = Block; in VisitSEHExceptStmt()
3295 Block = nullptr; in VisitSEHExceptStmt()
3311 Block = createBlock(false); in VisitSEHLeaveStmt()
3312 Block->setTerminator(LS); in VisitSEHLeaveStmt()
3318 addSuccessor(Block, SEHLeaveJumpTarget.block); in VisitSEHLeaveStmt()
3322 return Block; in VisitSEHLeaveStmt()
3330 if (Block) { in VisitSEHTryStmt()
3333 SEHTrySuccessor = Block; in VisitSEHTryStmt()
3351 Block = nullptr; in VisitSEHTryStmt()
3378 Block = nullptr; in VisitSEHTryStmt()
3385 CFGBlock *LabelBlock = Block; in VisitLabelStmt()
3403 Block = nullptr; in VisitLabelStmt()
3452 Block = createBlock(false); in VisitGotoStmt()
3453 Block->setTerminator(G); in VisitGotoStmt()
3460 BackpatchBlocks.push_back(JumpSource(Block, ScopePos)); in VisitGotoStmt()
3464 addSuccessor(Block, JT.block); in VisitGotoStmt()
3467 return Block; in VisitGotoStmt()
3477 if (Block) { in VisitGCCAsmStmt()
3478 Succ = Block; in VisitGCCAsmStmt()
3482 Block = createBlock(); in VisitGCCAsmStmt()
3483 Block->setTerminator(G); in VisitGCCAsmStmt()
3485 BackpatchBlocks.push_back(JumpSource(Block, ScopePos)); in VisitGCCAsmStmt()
3516 if (Block) { in VisitForStmt()
3519 LoopSuccessor = Block; in VisitForStmt()
3535 SaveAndRestore save_Block(Block), save_Succ(Succ); in VisitForStmt()
3541 Block = Succ = TransitionBlock = createBlock(false); in VisitForStmt()
3551 if (Block) { in VisitForStmt()
3552 assert(Block == Succ); in VisitForStmt()
3555 Block = nullptr; in VisitForStmt()
3614 Block = ExitConditionBlock; in VisitForStmt()
3627 appendStmt(Block, DS); in VisitForStmt()
3629 assert(Block == EntryConditionBlock); in VisitForStmt()
3634 if (Block && badCFG) in VisitForStmt()
3659 Block = createBlock(); in VisitForStmt()
3665 Block = nullptr; in VisitForStmt()
3683 appendStmt(Block, M); in VisitMemberExpr()
3722 if (Block) { in VisitObjCForCollectionStmt()
3725 LoopSuccessor = Block; in VisitObjCForCollectionStmt()
3726 Block = nullptr; in VisitObjCForCollectionStmt()
3740 Block = ExitConditionBlock; in VisitObjCForCollectionStmt()
3747 if (Block) { in VisitObjCForCollectionStmt()
3750 Block = nullptr; in VisitObjCForCollectionStmt()
3760 SaveAndRestore save_Block(Block), save_Succ(Succ); in VisitObjCForCollectionStmt()
3778 else if (Block) { in VisitObjCForCollectionStmt()
3792 Block = createBlock(); in VisitObjCForCollectionStmt()
3814 Block = nullptr; in VisitObjCAtSynchronizedStmt()
3820 appendStmt(Block, S); in VisitObjCAtSynchronizedStmt()
3830 appendStmt(Block, E); in VisitPseudoObjectExpr()
3832 CFGBlock *lastBlock = Block; in VisitPseudoObjectExpr()
3869 if (Block) { in VisitWhileStmt()
3872 LoopSuccessor = Block; in VisitWhileStmt()
3873 Block = nullptr; in VisitWhileStmt()
3885 SaveAndRestore save_Block(Block), save_Succ(Succ); in VisitWhileStmt()
3911 else if (Block && badCFG) in VisitWhileStmt()
3939 Block = ExitConditionBlock; in VisitWhileStmt()
3940 Block = EntryConditionBlock = addStmt(C); in VisitWhileStmt()
3953 appendStmt(Block, DS); in VisitWhileStmt()
3955 assert(Block == EntryConditionBlock); in VisitWhileStmt()
3960 if (Block && badCFG) in VisitWhileStmt()
3979 Block = nullptr; in VisitWhileStmt()
3990 appendStmt(Block, A); in VisitArrayInitLoopExpr()
3993 CFGBlock *B = Block; in VisitArrayInitLoopExpr()
4018 CFGBlock *CatchBlock = Block; in VisitObjCAtCatchStmt()
4032 Block = nullptr; in VisitObjCAtCatchStmt()
4043 Block = createBlock(false); in VisitObjCAtThrowStmt()
4047 addSuccessor(Block, TryTerminatedBlock); in VisitObjCAtThrowStmt()
4050 addSuccessor(Block, &cfg->getExit()); in VisitObjCAtThrowStmt()
4062 if (Block) { in VisitObjCAtTryStmt()
4065 TrySuccessor = Block; in VisitObjCAtTryStmt()
4087 Block = nullptr; in VisitObjCAtTryStmt()
4112 Block = nullptr; in VisitObjCAtTryStmt()
4121 appendObjCMessage(Block, ME); in VisitObjCMessageExpr()
4132 Block = createBlock(false); in VisitCXXThrowExpr()
4136 addSuccessor(Block, TryTerminatedBlock); in VisitCXXThrowExpr()
4139 addSuccessor(Block, &cfg->getExit()); in VisitCXXThrowExpr()
4149 appendStmt(Block, S); in VisitCXXTypeidExpr()
4162 return Block; in VisitCXXTypeidExpr()
4172 if (Block) { in VisitDoStmt()
4175 LoopSuccessor = Block; in VisitDoStmt()
4191 Block = ExitConditionBlock; in VisitDoStmt()
4193 if (Block) { in VisitDoStmt()
4211 SaveAndRestore save_Block(Block), save_Succ(Succ); in VisitDoStmt()
4222 Block = nullptr; in VisitDoStmt()
4234 else if (Block) { in VisitDoStmt()
4244 Block = nullptr; in VisitDoStmt()
4262 Block = nullptr; in VisitDoStmt()
4276 Block = createBlock(false); in VisitContinueStmt()
4277 Block->setTerminator(C); in VisitContinueStmt()
4283 addSuccessor(Block, ContinueJumpTarget.block); in VisitContinueStmt()
4287 return Block; in VisitContinueStmt()
4294 appendStmt(Block, E); in VisitUnaryExprOrTypeTraitExpr()
4301 return Block; in VisitUnaryExprOrTypeTraitExpr()
4303 CFGBlock *lastBlock = Block; in VisitUnaryExprOrTypeTraitExpr()
4318 appendStmt(Block, SE); in VisitStmtExpr()
4343 if (Block) { in VisitSwitchStmt()
4346 SwitchSuccessor = Block; in VisitSwitchStmt()
4371 Block = nullptr; in VisitSwitchStmt()
4389 if (Block) { in VisitSwitchStmt()
4409 Block = SwitchTerminatedBlock; in VisitSwitchStmt()
4417 appendStmt(Block, Terminator->getConditionVariableDeclStmt()); in VisitSwitchStmt()
4499 CFGBlock *CaseBlock = Block; in VisitCaseStmt()
4518 Block = nullptr; in VisitCaseStmt()
4535 DefaultCaseBlock = Block; in VisitDefaultStmt()
4554 Block = nullptr; in VisitDefaultStmt()
4567 if (Block) { in VisitCXXTryStmt()
4570 TrySuccessor = Block; in VisitCXXTryStmt()
4589 Block = nullptr; in VisitCXXTryStmt()
4612 Block = nullptr; in VisitCXXTryStmt()
4635 CFGBlock *CatchBlock = Block; in VisitCXXCatchStmt()
4654 Block = nullptr; in VisitCXXCatchStmt()
4690 if (Block) { in VisitCXXForRangeStmt()
4693 LoopSuccessor = Block; in VisitCXXForRangeStmt()
4708 Block = ConditionBlock; in VisitCXXForRangeStmt()
4732 SaveAndRestore save_Block(Block), save_Succ(Succ); in VisitCXXForRangeStmt()
4737 Block = nullptr; in VisitCXXForRangeStmt()
4748 assert(Block); in VisitCXXForRangeStmt()
4751 Block = nullptr; in VisitCXXForRangeStmt()
4780 Block = createBlock(); in VisitCXXForRangeStmt()
4808 appendStmt(Block, E); in VisitCXXBindTemporaryExpr()
4828 appendConstructor(Block, C); in VisitCXXConstructExpr()
4836 appendStmt(Block, NE); in VisitCXXNewExpr()
4843 Block = Visit(NE->getInitializer()); in VisitCXXNewExpr()
4846 appendNewAllocator(Block, NE); in VisitCXXNewExpr()
4849 Block = Visit(*NE->getArraySize()); in VisitCXXNewExpr()
4853 Block = Visit(*I); in VisitCXXNewExpr()
4855 return Block; in VisitCXXNewExpr()
4861 appendStmt(Block, DE); in VisitCXXDeleteExpr()
4868 appendDeleteDtor(Block, RD, DE); in VisitCXXDeleteExpr()
4879 appendStmt(Block, E); in VisitCXXFunctionalCastExpr()
4894 appendConstructor(Block, C); in VisitCXXTemporaryObjectExpr()
4902 appendStmt(Block, E); in VisitImplicitCastExpr()
4929 Block = createBlock(false); in VisitIndirectGotoStmt()
4930 Block->setTerminator(I); in VisitIndirectGotoStmt()
4931 addSuccessor(Block, IBlock); in VisitIndirectGotoStmt()
5004 return Block; in VisitForTemporaryDtors()
5010 CFGBlock *B = Block; in VisitForTemporaryDtors()
5024 return Block; in VisitForTemporaryDtors()
5041 return Block; in VisitChildrenForTemporaryDtors()
5048 CFGBlock *B = Block; in VisitChildrenForTemporaryDtors()
5081 return Block; in VisitBinaryOperatorForTemporaryDtors()
5113 Block = createNoReturnBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
5118 Block = createBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
5125 appendTemporaryDtor(Block, E); in VisitCXXBindTemporaryExprForTemporaryDtors()
5127 B = Block; in VisitCXXBindTemporaryExprForTemporaryDtors()
5142 addSuccessor(Decision, Block, !Context.KnownExecuted.isFalse()); in InsertTempDtorDecisionBlock()
5145 Block = Decision; in InsertTempDtorDecisionBlock()
5152 CFGBlock *ConditionBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
5161 CFGBlock *TrueBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
5163 Block = ConditionBlock; in VisitConditionalOperatorForTemporaryDtors()
5172 Block = TrueBlock; in VisitConditionalOperatorForTemporaryDtors()
5177 return Block; in VisitConditionalOperatorForTemporaryDtors()
5184 appendStmt(Block, D); in VisitOMPExecutableDirective()
5188 CFGBlock *B = Block; in VisitOMPExecutableDirective()