From 9c4caab8a31dabb497c860ed340a97f6a429ed52 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 1 Jul 2015 15:22:59 +0300 Subject: Report useless checks if variable was checked for null and non null in all cases. --- src/analysis/expression.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') 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); } -- cgit v1.2.3-60-g2f50