summaryrefslogtreecommitdiff
path: root/src/analysis/expression.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-27 15:54:01 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-27 15:54:01 +0300
commit4c3b114e79c52a542a60667a2f9da0bb6c6f4f64 (patch)
tree5409a114d8615ec40bc6179de75624c06e2991ee /src/analysis/expression.cpp
parentc074c192c0130129cadacb3d72495b1675a5d431 (diff)
downloadparanucker-4c3b114e79c52a542a60667a2f9da0bb6c6f4f64.tar.gz
paranucker-4c3b114e79c52a542a60667a2f9da0bb6c6f4f64.tar.bz2
paranucker-4c3b114e79c52a542a60667a2f9da0bb6c6f4f64.tar.xz
paranucker-4c3b114e79c52a542a60667a2f9da0bb6c6f4f64.zip
Allow check function pointers in arrays in local variables.
Diffstat (limited to 'src/analysis/expression.cpp')
-rw-r--r--src/analysis/expression.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp
index 2c0dba3..eacf457 100644
--- a/src/analysis/expression.cpp
+++ b/src/analysis/expression.cpp
@@ -487,8 +487,11 @@ void analyseCallExpr(CallExprNode *node, const WalkItem &wi, WalkItem &wo)
if (function == ARRAY_REF)
{
ArrayRefNode *arrRef = static_cast<ArrayRefNode*>(function);
- if (!arrRef->args.empty() && arrRef->args[0] == COMPONENT_REF)
+ if (!arrRef->args.empty() &&
+ (arrRef->args[0] == COMPONENT_REF || VAR_DECL))
+ {
function = arrRef->args[0];
+ }
}
reportParmDeclNullPointer(node, function, wi);
if (!getVariableName(function).empty())