Lines Matching refs:Block
474 CFGBlock *Block = nullptr; member in __anona1d14af10411::CFGBuilder
701 return Block; in NYS()
741 void autoCreateBlock() { if (!Block) Block = createBlock(); } in autoCreateBlock()
1495 Block = nullptr; // the EXIT block is empty. Create all other blocks lazily. in buildCFG()
1531 Block = createBlock(); in buildCFG()
1543 addSuccessor(B, Block, true); in buildCFG()
1636 return Block; in addInitializer()
1655 appendInitializer(Block, I); in addInitializer()
1673 appendStmt(Block, Default); in addInitializer()
1676 Block = R; in addInitializer()
1677 return Block; in addInitializer()
1683 return Block; in addInitializer()
1731 appendLoopExit(Block, LoopStmt); in addLoopExit()
1804 appendLifetimeEnds(Block, *I, S); in addLifetimeEnds()
1810 appendLifetimeEnds(Block, *I, S); in addLifetimeEnds()
1825 appendScopeEnd(Block, *I, S); in addScopesEnd()
1858 appendScopeEnd(Block, *I, S); in addAutomaticObjDtors()
1872 Block = createNoReturnBlock(); in addAutomaticObjDtors()
1878 appendScopeEnd(Block, *I, S); in addAutomaticObjDtors()
1879 appendAutomaticObjDtor(Block, *I, S); in addAutomaticObjDtors()
1898 appendBaseDtor(Block, &VI); in addImplicitDtorsForDestructor()
1908 appendBaseDtor(Block, &BI); in addImplicitDtorsForDestructor()
1926 appendMemberDtor(Block, FI); in addImplicitDtorsForDestructor()
2146 return Block; in Visit()
2279 return Block; in Visit()
2303 return Block; in Visit()
2345 appendStmt(Block, S); in VisitStmt()
2353 CFGBlock *B = Block; in VisitChildren()
2369 appendStmt(Block, ILE); in VisitInitListExpr()
2371 CFGBlock *B = Block; in VisitInitListExpr()
2395 appendStmt(Block, A); in VisitAddrLabelExpr()
2398 return Block; in VisitAddrLabelExpr()
2405 appendStmt(Block, U); in VisitUnaryOperator()
2415 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitLogicalOperator()
2467 Block = RHSBlock; in VisitLogicalOperator()
2496 Block = LHSBlock; in VisitLogicalOperator()
2526 appendStmt(Block, B); in VisitBinaryOperator()
2534 appendStmt(Block, B); in VisitBinaryOperator()
2542 appendStmt(Block, B); in VisitBinaryOperator()
2559 appendStmt(Block, E); in VisitNoRecurse()
2561 return Block; in VisitNoRecurse()
2571 Block = createBlock(false); in VisitBreakStmt()
2572 Block->setTerminator(B); in VisitBreakStmt()
2578 addSuccessor(Block, BreakJumpTarget.block); in VisitBreakStmt()
2582 return Block; in VisitBreakStmt()
2650 appendStmt(Block, C); in VisitCallExpr()
2656 appendCall(Block, C); in VisitCallExpr()
2661 if (Block) { in VisitCallExpr()
2662 Succ = Block; in VisitCallExpr()
2668 Block = createNoReturnBlock(); in VisitCallExpr()
2670 Block = createBlock(); in VisitCallExpr()
2672 appendCall(Block, C); in VisitCallExpr()
2677 addSuccessor(Block, TryTerminatedBlock); in VisitCallExpr()
2679 addSuccessor(Block, &cfg->getExit()); in VisitCallExpr()
2687 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitChooseExpr()
2694 Block = nullptr; in VisitChooseExpr()
2700 Block = nullptr; in VisitChooseExpr()
2705 Block = createBlock(false); in VisitChooseExpr()
2708 addSuccessor(Block, KnownVal.isFalse() ? nullptr : LHSBlock); in VisitChooseExpr()
2709 addSuccessor(Block, KnownVal.isTrue() ? nullptr : RHSBlock); in VisitChooseExpr()
2710 Block->setTerminator(C); in VisitChooseExpr()
2724 CFGBlock *LastBlock = Block; in VisitCompoundStmt()
2752 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitConditionalOperator()
2764 Block = nullptr; in VisitConditionalOperator()
2771 Block = nullptr; in VisitConditionalOperator()
2789 Block = createBlock(false); in VisitConditionalOperator()
2793 addSuccessor(Block, LHSBlock, !KnownVal.isFalse()); in VisitConditionalOperator()
2794 addSuccessor(Block, RHSBlock, !KnownVal.isTrue()); in VisitConditionalOperator()
2795 Block->setTerminator(C); in VisitConditionalOperator()
2816 return Block; in VisitDeclStmt()
2852 return Block; in VisitDeclSubExpr()
2855 appendStmt(Block, DS); in VisitDeclSubExpr()
2857 CFGBlock *LastBlock = Block; in VisitDeclSubExpr()
2871 return Block; in VisitDeclSubExpr()
2882 if (Block) { in VisitDeclSubExpr()
2883 Succ = Block; in VisitDeclSubExpr()
2884 Block = nullptr; in VisitDeclSubExpr()
2906 appendStmt(Block, DS); in VisitDeclSubExpr()
2915 CFGBlock *LastBlock = Block; in VisitDeclSubExpr()
2940 maybeAddScopeBeginForVarDecl(Block, VD, DS); in VisitDeclSubExpr()
2949 Block = createBlock(false); in VisitDeclSubExpr()
2950 Block->setTerminator(DS); in VisitDeclSubExpr()
2951 addSuccessor(Block, blockAfterStaticInit); in VisitDeclSubExpr()
2952 addSuccessor(Block, B); in VisitDeclSubExpr()
2953 B = Block; in VisitDeclSubExpr()
2984 if (Block) { in VisitIfStmt()
2985 Succ = Block; in VisitIfStmt()
2998 Block = nullptr; in VisitIfStmt()
3009 else if (Block) { in VisitIfStmt()
3021 Block = nullptr; in VisitIfStmt()
3036 } else if (Block) { in VisitIfStmt()
3058 Block = createBlock(false); in VisitIfStmt()
3061 Block->setTerminator(I); in VisitIfStmt()
3068 addSuccessor(Block, ThenBlock, /* IsReachable = */ !KnownVal.isFalse()); in VisitIfStmt()
3069 addSuccessor(Block, ElseBlock, /* IsReachable = */ !KnownVal.isTrue()); in VisitIfStmt()
3103 Block = createBlock(false); in VisitReturnStmt()
3114 if (!Block->hasNoReturnElement()) in VisitReturnStmt()
3115 addSuccessor(Block, &cfg->getExit()); in VisitReturnStmt()
3118 appendStmt(Block, S); in VisitReturnStmt()
3124 return Block; in VisitReturnStmt()
3139 CFGBlock *SEHExceptBlock = Block; in VisitSEHExceptStmt()
3153 Block = nullptr; in VisitSEHExceptStmt()
3169 Block = createBlock(false); in VisitSEHLeaveStmt()
3170 Block->setTerminator(LS); in VisitSEHLeaveStmt()
3176 addSuccessor(Block, SEHLeaveJumpTarget.block); in VisitSEHLeaveStmt()
3180 return Block; in VisitSEHLeaveStmt()
3188 if (Block) { in VisitSEHTryStmt()
3191 SEHTrySuccessor = Block; in VisitSEHTryStmt()
3209 Block = nullptr; in VisitSEHTryStmt()
3237 Block = nullptr; in VisitSEHTryStmt()
3244 CFGBlock *LabelBlock = Block; in VisitLabelStmt()
3262 Block = nullptr; in VisitLabelStmt()
3299 Block = createBlock(false); in VisitGotoStmt()
3300 Block->setTerminator(G); in VisitGotoStmt()
3307 BackpatchBlocks.push_back(JumpSource(Block, ScopePos)); in VisitGotoStmt()
3311 addSuccessor(Block, JT.block); in VisitGotoStmt()
3314 return Block; in VisitGotoStmt()
3324 if (Block) { in VisitGCCAsmStmt()
3325 Succ = Block; in VisitGCCAsmStmt()
3329 Block = createBlock(); in VisitGCCAsmStmt()
3330 Block->setTerminator(G); in VisitGCCAsmStmt()
3332 BackpatchBlocks.push_back(JumpSource(Block, ScopePos)); in VisitGCCAsmStmt()
3336 return Block; in VisitGCCAsmStmt()
3363 if (Block) { in VisitForStmt()
3366 LoopSuccessor = Block; in VisitForStmt()
3382 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitForStmt()
3388 Block = Succ = TransitionBlock = createBlock(false); in VisitForStmt()
3398 if (Block) { in VisitForStmt()
3399 assert(Block == Succ); in VisitForStmt()
3402 Block = nullptr; in VisitForStmt()
3461 Block = ExitConditionBlock; in VisitForStmt()
3474 appendStmt(Block, DS); in VisitForStmt()
3476 assert(Block == EntryConditionBlock); in VisitForStmt()
3481 if (Block && badCFG) in VisitForStmt()
3506 Block = createBlock(); in VisitForStmt()
3512 Block = nullptr; in VisitForStmt()
3530 appendStmt(Block, M); in VisitMemberExpr()
3569 if (Block) { in VisitObjCForCollectionStmt()
3572 LoopSuccessor = Block; in VisitObjCForCollectionStmt()
3573 Block = nullptr; in VisitObjCForCollectionStmt()
3587 Block = ExitConditionBlock; in VisitObjCForCollectionStmt()
3594 if (Block) { in VisitObjCForCollectionStmt()
3597 Block = nullptr; in VisitObjCForCollectionStmt()
3607 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitObjCForCollectionStmt()
3625 else if (Block) { in VisitObjCForCollectionStmt()
3639 Block = createBlock(); in VisitObjCForCollectionStmt()
3661 Block = nullptr; in VisitObjCAtSynchronizedStmt()
3667 appendStmt(Block, S); in VisitObjCAtSynchronizedStmt()
3682 appendStmt(Block, E); in VisitPseudoObjectExpr()
3684 CFGBlock *lastBlock = Block; in VisitPseudoObjectExpr()
3721 if (Block) { in VisitWhileStmt()
3724 LoopSuccessor = Block; in VisitWhileStmt()
3725 Block = nullptr; in VisitWhileStmt()
3737 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitWhileStmt()
3763 else if (Block && badCFG) in VisitWhileStmt()
3791 Block = ExitConditionBlock; in VisitWhileStmt()
3792 Block = EntryConditionBlock = addStmt(C); in VisitWhileStmt()
3805 appendStmt(Block, DS); in VisitWhileStmt()
3807 assert(Block == EntryConditionBlock); in VisitWhileStmt()
3812 if (Block && badCFG) in VisitWhileStmt()
3831 Block = nullptr; in VisitWhileStmt()
3841 return Block; in VisitObjCAtCatchStmt()
3853 Block = createBlock(false); in VisitObjCAtThrowStmt()
3856 addSuccessor(Block, &cfg->getExit()); in VisitObjCAtThrowStmt()
3868 appendObjCMessage(Block, ME); in VisitObjCMessageExpr()
3879 Block = createBlock(false); in VisitCXXThrowExpr()
3883 addSuccessor(Block, TryTerminatedBlock); in VisitCXXThrowExpr()
3886 addSuccessor(Block, &cfg->getExit()); in VisitCXXThrowExpr()
3900 if (Block) { in VisitDoStmt()
3903 LoopSuccessor = Block; in VisitDoStmt()
3919 Block = ExitConditionBlock; in VisitDoStmt()
3921 if (Block) { in VisitDoStmt()
3939 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitDoStmt()
3950 Block = nullptr; in VisitDoStmt()
3962 else if (Block) { in VisitDoStmt()
3972 Block = nullptr; in VisitDoStmt()
3990 Block = nullptr; in VisitDoStmt()
4004 Block = createBlock(false); in VisitContinueStmt()
4005 Block->setTerminator(C); in VisitContinueStmt()
4011 addSuccessor(Block, ContinueJumpTarget.block); in VisitContinueStmt()
4015 return Block; in VisitContinueStmt()
4022 appendStmt(Block, E); in VisitUnaryExprOrTypeTraitExpr()
4029 return Block; in VisitUnaryExprOrTypeTraitExpr()
4031 CFGBlock *lastBlock = Block; in VisitUnaryExprOrTypeTraitExpr()
4046 appendStmt(Block, SE); in VisitStmtExpr()
4071 if (Block) { in VisitSwitchStmt()
4074 SwitchSuccessor = Block; in VisitSwitchStmt()
4099 Block = nullptr; in VisitSwitchStmt()
4119 if (Block) { in VisitSwitchStmt()
4139 Block = SwitchTerminatedBlock; in VisitSwitchStmt()
4147 appendStmt(Block, Terminator->getConditionVariableDeclStmt()); in VisitSwitchStmt()
4229 CFGBlock *CaseBlock = Block; in VisitCaseStmt()
4248 Block = nullptr; in VisitCaseStmt()
4265 DefaultCaseBlock = Block; in VisitDefaultStmt()
4284 Block = nullptr; in VisitDefaultStmt()
4297 if (Block) { in VisitCXXTryStmt()
4300 TrySuccessor = Block; in VisitCXXTryStmt()
4318 Block = nullptr; in VisitCXXTryStmt()
4341 Block = nullptr; in VisitCXXTryStmt()
4364 CFGBlock *CatchBlock = Block; in VisitCXXCatchStmt()
4383 Block = nullptr; in VisitCXXCatchStmt()
4419 if (Block) { in VisitCXXForRangeStmt()
4422 LoopSuccessor = Block; in VisitCXXForRangeStmt()
4437 Block = ConditionBlock; in VisitCXXForRangeStmt()
4461 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitCXXForRangeStmt()
4466 Block = nullptr; in VisitCXXForRangeStmt()
4477 assert(Block); in VisitCXXForRangeStmt()
4480 Block = nullptr; in VisitCXXForRangeStmt()
4509 Block = createBlock(); in VisitCXXForRangeStmt()
4537 appendStmt(Block, E); in VisitCXXBindTemporaryExpr()
4557 appendConstructor(Block, C); in VisitCXXConstructExpr()
4565 appendStmt(Block, NE); in VisitCXXNewExpr()
4572 Block = Visit(NE->getInitializer()); in VisitCXXNewExpr()
4575 appendNewAllocator(Block, NE); in VisitCXXNewExpr()
4578 Block = Visit(*NE->getArraySize()); in VisitCXXNewExpr()
4582 Block = Visit(*I); in VisitCXXNewExpr()
4584 return Block; in VisitCXXNewExpr()
4590 appendStmt(Block, DE); in VisitCXXDeleteExpr()
4597 appendDeleteDtor(Block, RD, DE); in VisitCXXDeleteExpr()
4608 appendStmt(Block, E); in VisitCXXFunctionalCastExpr()
4623 appendConstructor(Block, C); in VisitCXXTemporaryObjectExpr()
4631 appendStmt(Block, E); in VisitImplicitCastExpr()
4658 Block = createBlock(false); in VisitIndirectGotoStmt()
4659 Block->setTerminator(I); in VisitIndirectGotoStmt()
4660 addSuccessor(Block, IBlock); in VisitIndirectGotoStmt()
4733 return Block; in VisitForTemporaryDtors()
4739 CFGBlock *B = Block; in VisitForTemporaryDtors()
4753 return Block; in VisitForTemporaryDtors()
4770 return Block; in VisitChildrenForTemporaryDtors()
4777 CFGBlock *B = Block; in VisitChildrenForTemporaryDtors()
4810 return Block; in VisitBinaryOperatorForTemporaryDtors()
4842 Block = createNoReturnBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
4847 Block = createBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
4854 appendTemporaryDtor(Block, E); in VisitCXXBindTemporaryExprForTemporaryDtors()
4856 B = Block; in VisitCXXBindTemporaryExprForTemporaryDtors()
4871 addSuccessor(Decision, Block, !Context.KnownExecuted.isFalse()); in InsertTempDtorDecisionBlock()
4874 Block = Decision; in InsertTempDtorDecisionBlock()
4881 CFGBlock *ConditionBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
4890 CFGBlock *TrueBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
4892 Block = ConditionBlock; in VisitConditionalOperatorForTemporaryDtors()
4901 Block = TrueBlock; in VisitConditionalOperatorForTemporaryDtors()
4906 return Block; in VisitConditionalOperatorForTemporaryDtors()
4913 appendStmt(Block, D); in VisitOMPExecutableDirective()
4917 CFGBlock *B = Block; in VisitOMPExecutableDirective()