reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/Analysis/CFG.cpp
  702     return Block;
  742   void autoCreateBlock() { if (!Block) Block = createBlock(); }
  742   void autoCreateBlock() { if (!Block) Block = createBlock(); }
 1489   Block = nullptr;  // the EXIT block is empty.  Create all other blocks lazily.
 1525         Block = createBlock();
 1537       addSuccessor(B, Block, true);
 1630     return Block;
 1649   appendInitializer(Block, I);
 1667         appendStmt(Block, Default);
 1670             Block = R;
 1671         return Block;
 1677   return Block;
 1725   appendLoopExit(Block, LoopStmt);
 1798     appendLifetimeEnds(Block, *I, S);
 1804     appendLifetimeEnds(Block, *I, S);
 1819     appendScopeEnd(Block, *I, S);
 1852         appendScopeEnd(Block, *I, S);
 1866       Block = createNoReturnBlock();
 1872       appendScopeEnd(Block, *I, S);
 1873     appendAutomaticObjDtor(Block, *I, S);
 1892       appendBaseDtor(Block, &VI);
 1902         appendBaseDtor(Block, &BI);
 1920         appendMemberDtor(Block, FI);
 2265       return Block;
 2289       return Block;
 2331     appendStmt(Block, S);
 2339   CFGBlock *B = Block;
 2359     appendStmt(Block, A);
 2362   return Block;
 2369     appendStmt(Block, U);
 2379   CFGBlock *ConfluenceBlock = Block ? Block : createBlock();
 2379   CFGBlock *ConfluenceBlock = Block ? Block : createBlock();
 2431     Block = RHSBlock;
 2460   Block = LHSBlock;
 2490     appendStmt(Block, B);
 2498       appendStmt(Block, B);
 2506     appendStmt(Block, B);
 2523     appendStmt(Block, E);
 2525   return Block;
 2535   Block = createBlock(false);
 2536   Block->setTerminator(B);
 2542     addSuccessor(Block, BreakJumpTarget.block);
 2546   return Block;
 2614     appendStmt(Block, C);
 2620     appendCall(Block, C);
 2625   if (Block) {
 2626     Succ = Block;
 2632     Block = createNoReturnBlock();
 2634     Block = createBlock();
 2636   appendCall(Block, C);
 2641       addSuccessor(Block, TryTerminatedBlock);
 2643       addSuccessor(Block, &cfg->getExit());
 2651   CFGBlock *ConfluenceBlock = Block ? Block : createBlock();
 2651   CFGBlock *ConfluenceBlock = Block ? Block : createBlock();
 2658   Block = nullptr;
 2664   Block = nullptr;
 2669   Block = createBlock(false);
 2672   addSuccessor(Block, KnownVal.isFalse() ? nullptr : LHSBlock);
 2673   addSuccessor(Block, KnownVal.isTrue() ? nullptr : RHSBlock);
 2674   Block->setTerminator(C);
 2688   CFGBlock *LastBlock = Block;
 2716   CFGBlock *ConfluenceBlock = Block ? Block : createBlock();
 2716   CFGBlock *ConfluenceBlock = Block ? Block : createBlock();
 2728   Block = nullptr;
 2735     Block = nullptr;
 2753   Block = createBlock(false);
 2757   addSuccessor(Block, LHSBlock, !KnownVal.isFalse());
 2758   addSuccessor(Block, RHSBlock, !KnownVal.isTrue());
 2759   Block->setTerminator(C);
 2780     return Block;
 2816     return Block;
 2827     if (Block) {
 2828       Succ = Block;
 2829       Block = nullptr;
 2851   appendStmt(Block, DS);
 2860   CFGBlock *LastBlock = Block;
 2883   maybeAddScopeBeginForVarDecl(Block, VD, DS);
 2892     Block = createBlock(false);
 2893     Block->setTerminator(DS);
 2894     addSuccessor(Block, blockAfterStaticInit);
 2895     addSuccessor(Block, B);
 2896     B = Block;
 2927   if (Block) {
 2928     Succ = Block;
 2941     Block = nullptr;
 2952     else if (Block) {
 2964     Block = nullptr;
 2979     } else if (Block) {
 3001     Block = createBlock(false);
 3004     Block->setTerminator(I);
 3011     addSuccessor(Block, ThenBlock, /* IsReachable = */ !KnownVal.isFalse());
 3012     addSuccessor(Block, ElseBlock, /* IsReachable = */ !KnownVal.isTrue());
 3046   Block = createBlock(false);
 3057   if (!Block->hasNoReturnElement())
 3058     addSuccessor(Block, &cfg->getExit());
 3061   appendStmt(Block, S);
 3067     return Block;
 3082   CFGBlock *SEHExceptBlock = Block;
 3096   Block = nullptr;
 3112   Block = createBlock(false);
 3113   Block->setTerminator(LS);
 3119     addSuccessor(Block, SEHLeaveJumpTarget.block);
 3123   return Block;
 3131   if (Block) {
 3134     SEHTrySuccessor = Block;
 3152     Block = nullptr;
 3180   Block = nullptr;
 3187   CFGBlock *LabelBlock = Block;
 3205   Block = nullptr;
 3242   Block = createBlock(false);
 3243   Block->setTerminator(G);
 3250     BackpatchBlocks.push_back(JumpSource(Block, ScopePos));
 3254     addSuccessor(Block, JT.block);
 3257   return Block;
 3267   if (Block) {
 3268     Succ = Block;
 3272   Block = createBlock();
 3273   Block->setTerminator(G);
 3275   BackpatchBlocks.push_back(JumpSource(Block, ScopePos));
 3279   return Block;
 3306   if (Block) {
 3309     LoopSuccessor = Block;
 3325     SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ);
 3331     Block = Succ = TransitionBlock = createBlock(false);
 3341     if (Block) {
 3342       assert(Block == Succ);
 3345       Block = nullptr;
 3404       Block = ExitConditionBlock;
 3417           appendStmt(Block, DS);
 3419           assert(Block == EntryConditionBlock);
 3424       if (Block && badCFG)
 3449     Block = createBlock();
 3455   Block = nullptr;
 3473     appendStmt(Block, M);
 3512   if (Block) {
 3515     LoopSuccessor = Block;
 3516     Block = nullptr;
 3530   Block = ExitConditionBlock;
 3537   if (Block) {
 3540     Block = nullptr;
 3550     SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ);
 3568     else if (Block) {
 3582   Block = createBlock();
 3604     Block = nullptr;
 3610   appendStmt(Block, S);
 3625   appendStmt(Block, E);
 3627   CFGBlock *lastBlock = Block;
 3664   if (Block) {
 3667     LoopSuccessor = Block;
 3668     Block = nullptr;
 3680     SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ);
 3706     else if (Block && badCFG)
 3734     Block = ExitConditionBlock;
 3735     Block = EntryConditionBlock = addStmt(C);
 3748         appendStmt(Block, DS);
 3750         assert(Block == EntryConditionBlock);
 3755     if (Block && badCFG)
 3774   Block = nullptr;
 3784   return Block;
 3796   Block = createBlock(false);
 3799   addSuccessor(Block, &cfg->getExit());
 3811   appendObjCMessage(Block, ME);
 3822   Block = createBlock(false);
 3826     addSuccessor(Block, TryTerminatedBlock);
 3829     addSuccessor(Block, &cfg->getExit());
 3843   if (Block) {
 3846     LoopSuccessor = Block;
 3862     Block = ExitConditionBlock;
 3864     if (Block) {
 3882     SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ);
 3893     Block = nullptr;
 3905     else if (Block) {
 3915     Block = nullptr;
 3933   Block = nullptr;
 3947   Block = createBlock(false);
 3948   Block->setTerminator(C);
 3954     addSuccessor(Block, ContinueJumpTarget.block);
 3958   return Block;
 3965     appendStmt(Block, E);
 3969   CFGBlock *lastBlock = Block;
 3984     appendStmt(Block, SE);
 4009   if (Block) {
 4012     SwitchSuccessor = Block;
 4037   Block = nullptr;
 4057   if (Block) {
 4077   Block = SwitchTerminatedBlock;
 4085       appendStmt(Block, Terminator->getConditionVariableDeclStmt());
 4167   CFGBlock *CaseBlock = Block;
 4186   Block = nullptr;
 4203   DefaultCaseBlock = Block;
 4222   Block = nullptr;
 4235   if (Block) {
 4238     TrySuccessor = Block;
 4256     Block = nullptr;
 4279   Block = nullptr;
 4302   CFGBlock *CatchBlock = Block;
 4321   Block = nullptr;
 4357   if (Block) {
 4360     LoopSuccessor = Block;
 4375     Block = ConditionBlock;
 4399     SaveAndRestore<CFGBlock*> save_Block(Block), save_Succ(Succ);
 4404     Block = nullptr;
 4415     assert(Block);
 4418     Block = nullptr;
 4441   Block = createBlock();
 4469     appendStmt(Block, E);
 4489   appendConstructor(Block, C);
 4497   appendStmt(Block, NE);
 4504     Block = Visit(NE->getInitializer());
 4507     appendNewAllocator(Block, NE);
 4510     Block = Visit(*NE->getArraySize());
 4514     Block = Visit(*I);
 4516   return Block;
 4522   appendStmt(Block, DE);
 4529         appendDeleteDtor(Block, RD, DE);
 4540     appendStmt(Block, E);
 4555   appendConstructor(Block, C);
 4563     appendStmt(Block, E);
 4590   Block = createBlock(false);
 4591   Block->setTerminator(I);
 4592   addSuccessor(Block, IBlock);
 4665       return Block;
 4671       CFGBlock *B = Block;
 4685       return Block;
 4702     return Block;
 4709   CFGBlock *B = Block;
 4742     return Block;
 4778       Block = createNoReturnBlock();
 4783       Block = createBlock();
 4790     appendTemporaryDtor(Block, E);
 4792     B = Block;
 4807   addSuccessor(Decision, Block, !Context.KnownExecuted.isFalse());
 4810   Block = Decision;
 4817   CFGBlock *ConditionBlock = Block;
 4826   CFGBlock *TrueBlock = Block;
 4828   Block = ConditionBlock;
 4837     Block = TrueBlock;
 4842   return Block;
 4849     appendStmt(Block, D);
 4853   CFGBlock *B = Block;