diff options
-rw-r--r-- | src/analysis/expression.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp index 57263d3..b2c250a 100644 --- a/src/analysis/expression.cpp +++ b/src/analysis/expression.cpp @@ -510,8 +510,13 @@ void analyseNeExpr(NeExprNode *node, const WalkItem &wi, WalkItem &wo) } } + wo.checkedThenNonNullVars.insert(var); + wo.checkedElseNullVars.insert(var); + wo.cleanExpr = true; + wo.uselessExpr = false; if (doReport) reportUselessCheck(node, var); + return; } } wo.cleanExpr = false; @@ -557,7 +562,12 @@ void analyseEqExpr(EqExprNode *node, const WalkItem &wi, WalkItem &wo) else if (isIn(var, wi.knownNullVars) || isIn(var, wi.knownNonNullVars)) { + wo.checkedThenNullVars.insert(var); + wo.checkedElseNonNullVars.insert(var); reportUselessCheck(node, var); + wo.cleanExpr = true; + wo.uselessExpr = false; + return; } } wo.cleanExpr = false; |