diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-26 23:51:39 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-26 23:51:39 +0300 |
commit | 29ba8b1e49b23f8341886d1881246809c6cd668c (patch) | |
tree | 5ff64785f07152dbb7a5d9298e2ba80edca44868 /src/analysis/expression.cpp | |
parent | e6c3c8599bf943473abe7eb614b15b5880c27f5c (diff) | |
download | paranucker-29ba8b1e49b23f8341886d1881246809c6cd668c.tar.gz paranucker-29ba8b1e49b23f8341886d1881246809c6cd668c.tar.bz2 paranucker-29ba8b1e49b23f8341886d1881246809c6cd668c.tar.xz paranucker-29ba8b1e49b23f8341886d1881246809c6cd668c.zip |
Dont check first function parameter if function is pointer to function.
Also detect component variable name with field type VAR_DECL.
Diffstat (limited to 'src/analysis/expression.cpp')
-rw-r--r-- | src/analysis/expression.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp index 96d84e1..4d4c429 100644 --- a/src/analysis/expression.cpp +++ b/src/analysis/expression.cpp @@ -91,7 +91,7 @@ std::string getComponentRefVariable(Node *node) { IndirectRefNode *indirect = static_cast<IndirectRefNode*>(object); Node *ref = skipNop(indirect->ref); - if (ref == PARM_DECL) + if (ref == PARM_DECL || ref == VAR_DECL) { str.append(ref->label).append("->").append(field->label); } @@ -482,6 +482,8 @@ void analyseCallExpr(CallExprNode *node, const WalkItem &wi, WalkItem &wo) else { reportParmDeclNullPointer(node, node->function, wi); + if (!getVariableName(node->function).empty()) + enableCheck = false; } } FOR_EACH (std::vector<Node*>::const_iterator, it, node->args) |