diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-21 22:53:28 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-21 22:53:28 +0300 |
commit | b66cfe1f10ebc98709ce95ff065d7ad1b180f974 (patch) | |
tree | 60c5c0ef9570f85a656bfc535f72c027cb8b2817 | |
parent | 7d2f80978fe22b80b5349f6363d918dd02308448 (diff) | |
download | paranucker-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.cpp | 3 |
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) |