summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-07-03 19:44:32 +0300
committerAndrei Karas <akaras@inbox.ru>2015-07-03 19:44:32 +0300
commit9c9a7d9647b279bf1c58b000f700548902280e6c (patch)
tree527eddec0e2dea5705ecbaef9888748143bc6878 /src
parentade715ffe212a72abb84bc9e740685f10508cfbd (diff)
downloadparanucker-9c9a7d9647b279bf1c58b000f700548902280e6c.tar.gz
paranucker-9c9a7d9647b279bf1c58b000f700548902280e6c.tar.bz2
paranucker-9c9a7d9647b279bf1c58b000f700548902280e6c.tar.xz
paranucker-9c9a7d9647b279bf1c58b000f700548902280e6c.zip
Remove all variables from knownVars if both branches in if returned.
Diffstat (limited to 'src')
-rw-r--r--src/analysis/statement.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/analysis/statement.cpp b/src/analysis/statement.cpp
index 71b5227..ec9ec7f 100644
--- a/src/analysis/statement.cpp
+++ b/src/analysis/statement.cpp
@@ -179,9 +179,11 @@ void analyseCondition(Node *node,
if (wo2.isReturned && wo3.isReturned)
{
// add variable for ignore for all parent nodes except special like IF_STMT
- FOR_EACH (it, wo.needCheckNullVars)
+ FOR_EACH (it, wo.knownVars)
{
wo.removeNullVarsAll.insert(it);
+ wo.knownNullVars.erase(it);
+ wo.knownNonNullVars.erase(it);
}
}