diff options
Diffstat (limited to 'lib/Analysis/CFG.cpp')
-rw-r--r-- | lib/Analysis/CFG.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/Analysis/CFG.cpp b/lib/Analysis/CFG.cpp index f436ef3f6a..91a7fdf6bc 100644 --- a/lib/Analysis/CFG.cpp +++ b/lib/Analysis/CFG.cpp @@ -1665,6 +1665,7 @@ CFGBlock *CFGBuilder::VisitDeclSubExpr(DeclStmt *DS) { // whether or not they are initialized. if (Block) { Succ = Block; + Block = 0; if (badCFG) return 0; } @@ -1714,15 +1715,14 @@ CFGBlock *CFGBuilder::VisitDeclSubExpr(DeclStmt *DS) { if (ScopePos && VD == *ScopePos) ++ScopePos; - CFGBlock *B = Block ? Block : LastBlock; + CFGBlock *B = LastBlock; if (blockBeforeInit) { Succ = B; - Block = 0; - CFGBlock *branchBlock = createBlock(false); - branchBlock->setTerminator(DS); - addSuccessor(branchBlock, blockBeforeInit); - addSuccessor(branchBlock, B); - B = branchBlock; + Block = createBlock(false); + Block->setTerminator(DS); + addSuccessor(Block, blockBeforeInit); + addSuccessor(Block, B); + B = Block; } return B; |