summaryrefslogtreecommitdiff
path: root/src/analysis/expression.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-25 01:52:43 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-25 01:52:43 +0300
commit6df4368beeb6fc37aeeff5b0698ce75053cb05ea (patch)
treea0a9b40218c00a09f26a742c16cfd80514400810 /src/analysis/expression.cpp
parent208e4517bd230b1cab6325fcf6a263e69f38bf51 (diff)
downloadparanucker-6df4368beeb6fc37aeeff5b0698ce75053cb05ea.tar.gz
paranucker-6df4368beeb6fc37aeeff5b0698ce75053cb05ea.tar.bz2
paranucker-6df4368beeb6fc37aeeff5b0698ce75053cb05ea.tar.xz
paranucker-6df4368beeb6fc37aeeff5b0698ce75053cb05ea.zip
Add into analysis node NON_LVALUE_EXPR.
It works like NOP node.
Diffstat (limited to 'src/analysis/expression.cpp')
-rw-r--r--src/analysis/expression.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp
index 6b7654c..959cc79 100644
--- a/src/analysis/expression.cpp
+++ b/src/analysis/expression.cpp
@@ -36,6 +36,7 @@
#include "nodes/expr/eq_expr.h"
#include "nodes/expr/modify_expr.h"
#include "nodes/expr/ne_expr.h"
+#include "nodes/expr/nonlvalue_expr.h"
#include "nodes/expr/nop_expr.h"
#include "nodes/expr/pointerplus_expr.h"
#include "nodes/expr/return_expr.h"
@@ -444,6 +445,16 @@ void analyseNopExpr(NopExprNode *node, const WalkItem &wi, WalkItem &wo)
wo.stopWalking = true;
}
+void analyseNonLvalueExpr(NonLvalueExprNode *node, const WalkItem &wi, WalkItem &wo)
+{
+ // need one arg for check
+ if (node->args.empty())
+ return;
+
+ walkTree(node->args[0], wi, wo);
+ wo.stopWalking = true;
+}
+
void analyseCallExpr(CallExprNode *node, const WalkItem &wi, WalkItem &wo)
{
WalkItem wo2 = wo;