diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/analysis/expression.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp index 509faa0..edd1615 100644 --- a/src/analysis/expression.cpp +++ b/src/analysis/expression.cpp @@ -428,7 +428,22 @@ void analysePointerPlusExpr(PointerPlusExprNode *node, return; VarItem var = getVariableName(node->args[0]); - reportParmDeclNullPointer(node, node->args[0], wi); + if (!var.empty()) + { + if (!var.isNonNull && + isNotIn(var.name, wi.knownNonNullVars)) + { + reportParmDeclNullPointer(node, node->args[0], wi); + } + else if (var.isNonNull) + { + addNonNullVar(wo, var.name); + } + else + { + addUnknownVar(wo, var.name); + } + } } void analyseAddrExpr(AddrExprNode *node, |