summaryrefslogtreecommitdiff
path: root/src/analysis/analysis.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-23 20:41:10 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-23 20:41:10 +0300
commit1290718edd386257698556c1068fd5665dd14ead (patch)
tree552d6dc10dfd6044045309069d405253ce4883b2 /src/analysis/analysis.cpp
parent69e9e905de9dd9fb5c28abb5013945bba03e9dbb (diff)
downloadparanucker-1290718edd386257698556c1068fd5665dd14ead.tar.gz
paranucker-1290718edd386257698556c1068fd5665dd14ead.tar.bz2
paranucker-1290718edd386257698556c1068fd5665dd14ead.tar.xz
paranucker-1290718edd386257698556c1068fd5665dd14ead.zip
Add analysis for CALL_EXPR.
This allow detect null pointers like this: ptr->function();
Diffstat (limited to 'src/analysis/analysis.cpp')
-rw-r--r--src/analysis/analysis.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/analysis/analysis.cpp b/src/analysis/analysis.cpp
index 3cd7215..e4e789f 100644
--- a/src/analysis/analysis.cpp
+++ b/src/analysis/analysis.cpp
@@ -35,6 +35,7 @@
#include "nodes/expr/addr_expr.h"
#include "nodes/expr/bind_expr.h"
#include "nodes/expr/compound_expr.h"
+#include "nodes/expr/call_expr.h"
#include "nodes/expr/cond_expr.h"
#include "nodes/expr/decl_expr.h"
#include "nodes/expr/eq_expr.h"
@@ -331,6 +332,9 @@ void analyseNode(Node *node, const WalkItem &wi, WalkItem &wo)
case EQ_EXPR:
analyseEqExpr(static_cast<EqExprNode*>(node), wi2, wo);
break;
+ case CALL_EXPR:
+ analyseCallExpr(static_cast<CallExprNode*>(node), wi2, wo);
+ break;
case COND_EXPR:
analyseCondExpr(static_cast<CondExprNode*>(node), wi2, wo);
break;