diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-08-05 23:49:52 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-08-06 00:09:48 +0300 |
commit | 61195c7664c60ab08e44be218aa2b2d476335348 (patch) | |
tree | ef9cc2709d0324137f756656740c77309c8517ca | |
parent | db3acb91f61b3b82227422523123f9592d1e4545 (diff) | |
download | paranucker-61195c7664c60ab08e44be218aa2b2d476335348.tar.gz paranucker-61195c7664c60ab08e44be218aa2b2d476335348.tar.bz2 paranucker-61195c7664c60ab08e44be218aa2b2d476335348.tar.xz paranucker-61195c7664c60ab08e44be218aa2b2d476335348.zip |
Fix possible false positives in detecting pointers.
-rw-r--r-- | src/analysis/reports.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/analysis/reports.cpp b/src/analysis/reports.cpp index be91c3a..ddc78bb 100644 --- a/src/analysis/reports.cpp +++ b/src/analysis/reports.cpp @@ -179,13 +179,21 @@ void reportParmDeclAttrNullPointer(Node *mainNode, { if (node == PARM_DECL) { - if (isIn(node->label, wi.needCheckNullVars)) + ParmDeclNode *parmDecl = static_cast<ParmDeclNode*>(node); + if (parmDecl->declType == POINTER_TYPE && + isIn(node->label, wi.needCheckNullVars)) + { reportPossibleNullPointer(mainNode, node->label); + } } else if (node == VAR_DECL) { - if (isIn(node->label, wi.needCheckNullVars)) + VarDeclNode *varDecl = static_cast<VarDeclNode*>(node); + if (varDecl->varType == POINTER_TYPE && + isIn(node->label, wi.needCheckNullVars)) + { reportPossibleNullPointer(mainNode, node->label); + } } } else if (node == COMPONENT_REF) |