diff options
author | Ted Kremenek <kremenek@apple.com> | 2013-03-29 00:09:28 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2013-03-29 00:09:28 +0000 |
commit | 0f5c5c60e9806d13f0907cd99d7204ffab0e08f7 (patch) | |
tree | 0473b998559db3ad653c7c3ca054bdb3ae7912a6 /lib/Analysis/CFG.cpp | |
parent | 02a88c3edf1aeb9580e0b6e444b30c52846a673c (diff) |
Add static analyzer support for conditionally executing static initializers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178318 91177308-0d34-0410-b5e6-96231b3b80d8
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; |