diff options
-rw-r--r-- | src/analysis/expression.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp index e205e7b..506aef4 100644 --- a/src/analysis/expression.cpp +++ b/src/analysis/expression.cpp @@ -157,6 +157,8 @@ void analyseTruthOrIfExpr(TruthOrIfExprNode *node, const WalkItem &wi, WalkItem Log::dumpWI(node, "wo1 ", wo1); WalkItem wi2 = wi; removeCheckNullVarsSet(wi2, wo1.checkedNullVars); + wi2.checkNullVars.insert(wo1.checkedNonNullVars.begin(), + wo1.checkedNonNullVars.end()); Log::dumpWI(node, "wi2 ", wi2); walkTree(node->args[1], wi2, wo2); Log::dumpWI(node, "wo2 ", wo2); @@ -188,6 +190,8 @@ void analyseTruthAndIfExpr(TruthAndIfExprNode *node, const WalkItem &wi, WalkIte Log::dumpWI(node, "wo1 ", wo1); WalkItem wi2 = wi; removeCheckNullVarsSet(wi2, wo1.checkedNonNullVars); + wi2.checkNullVars.insert(wo1.checkedNullVars.begin(), + wo1.checkedNullVars.end()); Log::dumpWI(node, "wi2 ", wi2); walkTree(node->args[1], wi2, wo2); Log::dumpWI(node, "wo2 ", wo2); |