summaryrefslogtreecommitdiff
path: root/src/analysis/expression.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-12 00:31:56 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-12 00:31:56 +0300
commite6916af5a3f6a7bee468aa4df3c102b2ad80d868 (patch)
tree7129da3b7f138fa41f4b435f4c14e9bd2154b274 /src/analysis/expression.cpp
parente3bcf98ab8678ecab7ac07cadb9f897884a6c47d (diff)
downloadparanucker-e6916af5a3f6a7bee468aa4df3c102b2ad80d868.tar.gz
paranucker-e6916af5a3f6a7bee468aa4df3c102b2ad80d868.tar.bz2
paranucker-e6916af5a3f6a7bee468aa4df3c102b2ad80d868.tar.xz
paranucker-e6916af5a3f6a7bee468aa4df3c102b2ad80d868.zip
Fix crashes in expression and statement analysis.
Diffstat (limited to 'src/analysis/expression.cpp')
-rw-r--r--src/analysis/expression.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp
index a46023d..27b6718 100644
--- a/src/analysis/expression.cpp
+++ b/src/analysis/expression.cpp
@@ -44,7 +44,7 @@ void analyseModifyExpr(ModifyExprNode *node, const WalkItem &wi, WalkItem &wo)
return;
Node *arg = node->args[0];
- if (arg->nodeType == INDIRECT_REF)
+ if (arg && arg->nodeType == INDIRECT_REF)
{
IndirectRefNode *refNode = static_cast<IndirectRefNode*>(arg);
// need atleast one arg for check
@@ -69,7 +69,7 @@ void analysePointerPlusExpr(PointerPlusExprNode *node, const WalkItem &wi, WalkI
return;
Node *arg = node->args[0];
- if (arg->nodeType == PARM_DECL)
+ if (arg && arg->nodeType == PARM_DECL)
{
if (wi.checkNullVars.find(arg->label) != wi.checkNullVars.end())
{
@@ -86,7 +86,7 @@ void analyseAddrExpr(AddrExprNode *node, const WalkItem &wi, WalkItem &wo)
return;
Node *arg = node->args[0];
- if (arg->nodeType == PARM_DECL)
+ if (arg && arg->nodeType == PARM_DECL)
{
if (wi.checkNullVars.find(arg->label) != wi.checkNullVars.end())
{