diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/analysis/expression.cpp | 2 | ||||
-rw-r--r-- | src/analysis/reports.cpp | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp index e3f3816..235aa84 100644 --- a/src/analysis/expression.cpp +++ b/src/analysis/expression.cpp @@ -302,6 +302,7 @@ void analyseModifyExpr(ModifyExprNode *node, const WalkItem &wi, WalkItem &wo) { VarItem var1 = getVariableName(arg); VarItem var2 = getVariableName(node->args[1]); + //Log::log("analyseModifyExpr vars: %s, %s\n", var1.name.c_str(), var2.name.c_str()); Node *arg0 = arg; if (arg == COMPONENT_REF) @@ -370,6 +371,7 @@ void analyseModifyExpr(ModifyExprNode *node, const WalkItem &wi, WalkItem &wo) } else { + reportParmDeclLeftNullPointer(node, node->args[0], wi); reportParmDeclNullPointer(node, node->args[1], wi); } } diff --git a/src/analysis/reports.cpp b/src/analysis/reports.cpp index 7e7ceb3..0f4b197 100644 --- a/src/analysis/reports.cpp +++ b/src/analysis/reports.cpp @@ -123,7 +123,8 @@ void reportParmDeclLeftNullPointer(Node *mainNode, FOR_EACH (var, vars) { if (!var.isNonNull && - isIn(var.name, wi.needCheckNullVars)) + (isIn(var.name, wi.needCheckNullVars) || + isNotIn(var.name, wi.knownVars))) { Log::warn(findBackLocation(mainNode), "Using field '%s' without checking for null pointer", |