summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-21 22:53:28 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-21 22:53:28 +0300
commitb66cfe1f10ebc98709ce95ff065d7ad1b180f974 (patch)
tree60c5c0ef9570f85a656bfc535f72c027cb8b2817
parent7d2f80978fe22b80b5349f6363d918dd02308448 (diff)
downloadparanucker-b66cfe1f10ebc98709ce95ff065d7ad1b180f974.tar.gz
paranucker-b66cfe1f10ebc98709ce95ff065d7ad1b180f974.tar.bz2
paranucker-b66cfe1f10ebc98709ce95ff065d7ad1b180f974.tar.xz
paranucker-b66cfe1f10ebc98709ce95ff065d7ad1b180f974.zip
Fix nested IF_STMT nodes analysis.
-rw-r--r--src/analysis/statement.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/analysis/statement.cpp b/src/analysis/statement.cpp
index 335df2b..ef1cac2 100644
--- a/src/analysis/statement.cpp
+++ b/src/analysis/statement.cpp
@@ -61,6 +61,7 @@ void analyseIfStmt(IfStmtNode *node, const WalkItem &wi, WalkItem &wo)
{
wi2.checkNullVars.erase(*it);
}
+ std::set<std::string> tmpVars = wo.removeNullVars;
walkTree(node->thenNode, wi2, wo);
wo.removeNullVars.clear();
@@ -76,7 +77,7 @@ void analyseIfStmt(IfStmtNode *node, const WalkItem &wi, WalkItem &wo)
}
walkTree(node->elseNode, wi2, wo);
- wo.removeNullVars.clear();
+ wo.removeNullVars = tmpVars;
// if (returned && wco.cleanExpr && !wco.uselessExpr)
if (returned && !wco.uselessExpr)