summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-08-05 23:49:52 +0300
committerAndrei Karas <akaras@inbox.ru>2015-08-06 00:09:48 +0300
commit61195c7664c60ab08e44be218aa2b2d476335348 (patch)
treeef9cc2709d0324137f756656740c77309c8517ca
parentdb3acb91f61b3b82227422523123f9592d1e4545 (diff)
downloadparanucker-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.cpp12
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)