summaryrefslogtreecommitdiff
path: root/src/analysis/expression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/expression.cpp')
-rw-r--r--src/analysis/expression.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp
index 87ee12f..6a4be5b 100644
--- a/src/analysis/expression.cpp
+++ b/src/analysis/expression.cpp
@@ -216,7 +216,8 @@ void analyseNeExpr(NeExprNode *node, const WalkItem &wi, WalkItem &wo)
wo.uselessExpr = false;
return;
}
- else if (wi.knownNonNullVars.find(var) != wi.knownNonNullVars.end())
+ else if (wi.knownNonNullVars.find(var) != wi.knownNonNullVars.end() ||
+ wi.knownNullVars.find(var) != wi.knownNullVars.end())
{
bool doReport(true);
// exception for delete operator. it check for var != 0 before really delete
@@ -324,13 +325,15 @@ void analyseEqExpr(EqExprNode *node, const WalkItem &wi, WalkItem &wo)
wo.knownNullVars.insert(var);
wo.cleanExpr = true;
wo.uselessExpr = false;
- if (wi.knownNullVars.find(var) != wi.knownNullVars.end())
+ if (wi.knownNullVars.find(var) != wi.knownNullVars.end() ||
+ wi.knownNonNullVars.find(var) != wi.knownNonNullVars.end())
{
reportUselessCheck(node, var);
}
return;
}
- else if (wi.knownNullVars.find(var) != wi.knownNullVars.end())
+ else if (wi.knownNullVars.find(var) != wi.knownNullVars.end() ||
+ wi.knownNonNullVars.find(var) != wi.knownNonNullVars.end())
{
reportUselessCheck(node, var);
}