diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-27 21:34:23 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-27 21:34:23 +0300 |
commit | 9c00ff5fb9dd608a8b939196bbdbae098eba36af (patch) | |
tree | 7f20d61c69e9c2683a1cb16f85198e34cc3e18c1 /src/analysis/expression.cpp | |
parent | 1ec3350589832aef62332ea8f11bdb2660904eb9 (diff) | |
download | paranucker-9c00ff5fb9dd608a8b939196bbdbae098eba36af.tar.gz paranucker-9c00ff5fb9dd608a8b939196bbdbae098eba36af.tar.bz2 paranucker-9c00ff5fb9dd608a8b939196bbdbae098eba36af.tar.xz paranucker-9c00ff5fb9dd608a8b939196bbdbae098eba36af.zip |
Before linking vars check is parent var must be checked.
Diffstat (limited to 'src/analysis/expression.cpp')
-rw-r--r-- | src/analysis/expression.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp index c607e9e..e907792 100644 --- a/src/analysis/expression.cpp +++ b/src/analysis/expression.cpp @@ -124,8 +124,11 @@ void analyseModifyExpr(ModifyExprNode *node, const WalkItem &wi, WalkItem &wo) std::string var2 = getVariableName(node->args[1]); if (!var1.empty() && !var2.empty()) { - wo.addNullVars.insert(var1); - addLinkedVar(wo, var2, var1); + if (wi.checkNullVars.find(var2) != wi.checkNullVars.end()) + { + wo.addNullVars.insert(var1); + addLinkedVar(wo, var2, var1); + } } } } @@ -564,6 +567,8 @@ void analyseInitExpr(InitExprNode* node, std::string var2 = getVariableName(node->args[1]); if (var1.empty() || var2.empty()) return; + if (wi.checkNullVars.find(var2) == wi.checkNullVars.end()) + return; wo.addNullVars.insert(var1); addLinkedVar(wo, var2, var1); } |