Lines Matching refs:Block
301 CFGBlock *Block; member in __anon75d161960111::CFGBuilder
344 Block(nullptr), Succ(nullptr), in CFGBuilder()
496 return Block; in NYS()
499 void autoCreateBlock() { if (!Block) Block = createBlock(); } in autoCreateBlock()
983 Block = nullptr; // the EXIT block is empty. Create all other blocks lazily. in buildCFG()
1070 return Block; in addInitializer()
1089 appendInitializer(Block, I); in addInitializer()
1103 appendStmt(Block, Default); in addInitializer()
1106 Block = R; in addInitializer()
1107 return Block; in addInitializer()
1113 return Block; in addInitializer()
1195 Block = createNoReturnBlock(); in addAutomaticObjDtors()
1199 appendAutomaticObjDtor(Block, *I, S); in addAutomaticObjDtors()
1215 appendBaseDtor(Block, &VI); in addImplicitDtorsForDestructor()
1225 appendBaseDtor(Block, &BI); in addImplicitDtorsForDestructor()
1243 appendMemberDtor(Block, FI); in addImplicitDtorsForDestructor()
1514 return Block; in Visit()
1535 return Block; in Visit()
1564 appendStmt(Block, S); in VisitStmt()
1572 CFGBlock *B = Block; in VisitChildren()
1592 appendStmt(Block, A); in VisitAddrLabelExpr()
1595 return Block; in VisitAddrLabelExpr()
1602 appendStmt(Block, U); in VisitUnaryOperator()
1609 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitLogicalOperator()
1658 Block = RHSBlock; in VisitLogicalOperator()
1687 Block = LHSBlock; in VisitLogicalOperator()
1718 appendStmt(Block, B); in VisitBinaryOperator()
1726 appendStmt(Block, B); in VisitBinaryOperator()
1734 appendStmt(Block, B); in VisitBinaryOperator()
1748 appendStmt(Block, E); in VisitNoRecurse()
1750 return Block; in VisitNoRecurse()
1760 Block = createBlock(false); in VisitBreakStmt()
1761 Block->setTerminator(B); in VisitBreakStmt()
1767 addSuccessor(Block, BreakJumpTarget.block); in VisitBreakStmt()
1772 return Block; in VisitBreakStmt()
1834 appendStmt(Block, C); in VisitCallExpr()
1842 if (Block) { in VisitCallExpr()
1843 Succ = Block; in VisitCallExpr()
1849 Block = createNoReturnBlock(); in VisitCallExpr()
1851 Block = createBlock(); in VisitCallExpr()
1853 appendStmt(Block, C); in VisitCallExpr()
1858 addSuccessor(Block, TryTerminatedBlock); in VisitCallExpr()
1860 addSuccessor(Block, &cfg->getExit()); in VisitCallExpr()
1868 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitChooseExpr()
1875 Block = nullptr; in VisitChooseExpr()
1881 Block = nullptr; in VisitChooseExpr()
1886 Block = createBlock(false); in VisitChooseExpr()
1889 addSuccessor(Block, KnownVal.isFalse() ? nullptr : LHSBlock); in VisitChooseExpr()
1890 addSuccessor(Block, KnownVal.isTrue() ? nullptr : RHSBlock); in VisitChooseExpr()
1891 Block->setTerminator(C); in VisitChooseExpr()
1898 CFGBlock *LastBlock = Block; in VisitCompoundStmt()
1921 CFGBlock *ConfluenceBlock = Block ? Block : createBlock(); in VisitConditionalOperator()
1933 Block = nullptr; in VisitConditionalOperator()
1940 Block = nullptr; in VisitConditionalOperator()
1958 Block = createBlock(false); in VisitConditionalOperator()
1962 addSuccessor(Block, LHSBlock, !KnownVal.isFalse()); in VisitConditionalOperator()
1963 addSuccessor(Block, RHSBlock, !KnownVal.isTrue()); in VisitConditionalOperator()
1964 Block->setTerminator(C); in VisitConditionalOperator()
1985 return Block; in VisitDeclStmt()
2025 return Block; in VisitDeclSubExpr()
2036 if (Block) { in VisitDeclSubExpr()
2037 Succ = Block; in VisitDeclSubExpr()
2038 Block = nullptr; in VisitDeclSubExpr()
2060 appendStmt(Block, DS); in VisitDeclSubExpr()
2065 CFGBlock *LastBlock = Block; in VisitDeclSubExpr()
2095 Block = createBlock(false); in VisitDeclSubExpr()
2096 Block->setTerminator(DS); in VisitDeclSubExpr()
2097 addSuccessor(Block, blockAfterStaticInit); in VisitDeclSubExpr()
2098 addSuccessor(Block, B); in VisitDeclSubExpr()
2099 B = Block; in VisitDeclSubExpr()
2127 if (Block) { in VisitIfStmt()
2128 Succ = Block; in VisitIfStmt()
2141 Block = nullptr; in VisitIfStmt()
2152 else if (Block) { in VisitIfStmt()
2164 Block = nullptr; in VisitIfStmt()
2179 } else if (Block) { in VisitIfStmt()
2199 Block = createBlock(false); in VisitIfStmt()
2202 Block->setTerminator(I); in VisitIfStmt()
2209 addSuccessor(Block, ThenBlock, /* isReachable = */ !KnownVal.isFalse()); in VisitIfStmt()
2210 addSuccessor(Block, ElseBlock, /* isReachable = */ !KnownVal.isTrue()); in VisitIfStmt()
2237 Block = createBlock(false); in VisitReturnStmt()
2243 if (!Block->hasNoReturnElement()) in VisitReturnStmt()
2244 addSuccessor(Block, &cfg->getExit()); in VisitReturnStmt()
2254 CFGBlock *LabelBlock = Block; in VisitLabelStmt()
2272 Block = nullptr; in VisitLabelStmt()
2297 Block = createBlock(false); in VisitGotoStmt()
2298 Block->setTerminator(G); in VisitGotoStmt()
2305 BackpatchBlocks.push_back(JumpSource(Block, ScopePos)); in VisitGotoStmt()
2309 addSuccessor(Block, JT.block); in VisitGotoStmt()
2312 return Block; in VisitGotoStmt()
2337 if (Block) { in VisitForStmt()
2340 LoopSuccessor = Block; in VisitForStmt()
2356 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitForStmt()
2362 Block = Succ = TransitionBlock = createBlock(false); in VisitForStmt()
2372 if (Block) { in VisitForStmt()
2373 assert(Block == Succ); in VisitForStmt()
2376 Block = nullptr; in VisitForStmt()
2434 Block = ExitConditionBlock; in VisitForStmt()
2442 appendStmt(Block, F->getConditionVariableDeclStmt()); in VisitForStmt()
2444 assert(Block == EntryConditionBlock); in VisitForStmt()
2448 if (Block && badCFG) in VisitForStmt()
2472 Block = createBlock(); in VisitForStmt()
2478 Block = nullptr; in VisitForStmt()
2486 appendStmt(Block, M); in VisitMemberExpr()
2526 if (Block) { in VisitObjCForCollectionStmt()
2529 LoopSuccessor = Block; in VisitObjCForCollectionStmt()
2530 Block = nullptr; in VisitObjCForCollectionStmt()
2544 Block = ExitConditionBlock; in VisitObjCForCollectionStmt()
2551 if (Block) { in VisitObjCForCollectionStmt()
2554 Block = nullptr; in VisitObjCForCollectionStmt()
2564 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitObjCForCollectionStmt()
2582 else if (Block) { in VisitObjCForCollectionStmt()
2596 Block = createBlock(); in VisitObjCForCollectionStmt()
2618 Block = nullptr; in VisitObjCAtSynchronizedStmt()
2624 appendStmt(Block, S); in VisitObjCAtSynchronizedStmt()
2639 appendStmt(Block, E); in VisitPseudoObjectExpr()
2641 CFGBlock *lastBlock = Block; in VisitPseudoObjectExpr()
2677 if (Block) { in VisitWhileStmt()
2680 LoopSuccessor = Block; in VisitWhileStmt()
2681 Block = nullptr; in VisitWhileStmt()
2693 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitWhileStmt()
2719 else if (Block && badCFG) in VisitWhileStmt()
2747 Block = ExitConditionBlock; in VisitWhileStmt()
2748 Block = EntryConditionBlock = addStmt(C); in VisitWhileStmt()
2755 appendStmt(Block, W->getConditionVariableDeclStmt()); in VisitWhileStmt()
2757 assert(Block == EntryConditionBlock); in VisitWhileStmt()
2761 if (Block && badCFG) in VisitWhileStmt()
2781 Block = nullptr; in VisitWhileStmt()
2792 return Block; in VisitObjCAtCatchStmt()
2804 Block = createBlock(false); in VisitObjCAtThrowStmt()
2807 addSuccessor(Block, &cfg->getExit()); in VisitObjCAtThrowStmt()
2820 Block = createBlock(false); in VisitCXXThrowExpr()
2824 addSuccessor(Block, TryTerminatedBlock); in VisitCXXThrowExpr()
2827 addSuccessor(Block, &cfg->getExit()); in VisitCXXThrowExpr()
2839 if (Block) { in VisitDoStmt()
2842 LoopSuccessor = Block; in VisitDoStmt()
2858 Block = ExitConditionBlock; in VisitDoStmt()
2860 if (Block) { in VisitDoStmt()
2878 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitDoStmt()
2889 Block = nullptr; in VisitDoStmt()
2901 else if (Block) { in VisitDoStmt()
2912 Block = nullptr; in VisitDoStmt()
2930 Block = nullptr; in VisitDoStmt()
2944 Block = createBlock(false); in VisitContinueStmt()
2945 Block->setTerminator(C); in VisitContinueStmt()
2951 addSuccessor(Block, ContinueJumpTarget.block); in VisitContinueStmt()
2955 return Block; in VisitContinueStmt()
2963 appendStmt(Block, E); in VisitUnaryExprOrTypeTraitExpr()
2967 CFGBlock *lastBlock = Block; in VisitUnaryExprOrTypeTraitExpr()
2982 appendStmt(Block, SE); in VisitStmtExpr()
3004 if (Block) { in VisitSwitchStmt()
3007 SwitchSuccessor = Block; in VisitSwitchStmt()
3032 Block = nullptr; in VisitSwitchStmt()
3052 if (Block) { in VisitSwitchStmt()
3072 Block = SwitchTerminatedBlock; in VisitSwitchStmt()
3080 appendStmt(Block, Terminator->getConditionVariableDeclStmt()); in VisitSwitchStmt()
3155 CFGBlock *CaseBlock = Block; in VisitCaseStmt()
3174 Block = nullptr; in VisitCaseStmt()
3191 DefaultCaseBlock = Block; in VisitDefaultStmt()
3210 Block = nullptr; in VisitDefaultStmt()
3223 if (Block) { in VisitCXXTryStmt()
3226 TrySuccessor = Block; in VisitCXXTryStmt()
3244 Block = nullptr; in VisitCXXTryStmt()
3267 Block = nullptr; in VisitCXXTryStmt()
3290 CFGBlock *CatchBlock = Block; in VisitCXXCatchStmt()
3309 Block = nullptr; in VisitCXXCatchStmt()
3343 if (Block) { in VisitCXXForRangeStmt()
3346 LoopSuccessor = Block; in VisitCXXForRangeStmt()
3361 Block = ConditionBlock; in VisitCXXForRangeStmt()
3385 SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ); in VisitCXXForRangeStmt()
3390 Block = nullptr; in VisitCXXForRangeStmt()
3399 assert(Block); in VisitCXXForRangeStmt()
3402 Block = nullptr; in VisitCXXForRangeStmt()
3425 Block = createBlock(); in VisitCXXForRangeStmt()
3449 appendStmt(Block, E); in VisitCXXBindTemporaryExpr()
3460 appendStmt(Block, C); in VisitCXXConstructExpr()
3469 appendStmt(Block, NE); in VisitCXXNewExpr()
3472 Block = Visit(NE->getInitializer()); in VisitCXXNewExpr()
3474 appendNewAllocator(Block, NE); in VisitCXXNewExpr()
3476 Block = Visit(NE->getArraySize()); in VisitCXXNewExpr()
3479 Block = Visit(*I); in VisitCXXNewExpr()
3480 return Block; in VisitCXXNewExpr()
3486 appendStmt(Block, DE); in VisitCXXDeleteExpr()
3492 appendDeleteDtor(Block, RD, DE); in VisitCXXDeleteExpr()
3502 appendStmt(Block, E); in VisitCXXFunctionalCastExpr()
3512 appendStmt(Block, C); in VisitCXXTemporaryObjectExpr()
3520 appendStmt(Block, E); in VisitImplicitCastExpr()
3539 Block = createBlock(false); in VisitIndirectGotoStmt()
3540 Block->setTerminator(I); in VisitIndirectGotoStmt()
3541 addSuccessor(Block, IBlock); in VisitIndirectGotoStmt()
3606 return Block; in VisitForTemporaryDtors()
3612 CFGBlock *B = Block; in VisitForTemporaryDtors()
3635 return Block; in VisitChildrenForTemporaryDtors()
3642 CFGBlock *B = Block; in VisitChildrenForTemporaryDtors()
3667 return Block; in VisitBinaryOperatorForTemporaryDtors()
3702 Block = createNoReturnBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
3707 Block = createBlock(); in VisitCXXBindTemporaryExprForTemporaryDtors()
3714 appendTemporaryDtor(Block, E); in VisitCXXBindTemporaryExprForTemporaryDtors()
3716 B = Block; in VisitCXXBindTemporaryExprForTemporaryDtors()
3730 addSuccessor(Decision, Block, !Context.KnownExecuted.isFalse()); in InsertTempDtorDecisionBlock()
3733 Block = Decision; in InsertTempDtorDecisionBlock()
3740 CFGBlock *ConditionBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
3749 CFGBlock *TrueBlock = Block; in VisitConditionalOperatorForTemporaryDtors()
3751 Block = ConditionBlock; in VisitConditionalOperatorForTemporaryDtors()
3760 Block = TrueBlock; in VisitConditionalOperatorForTemporaryDtors()
3765 return Block; in VisitConditionalOperatorForTemporaryDtors()