From 23b4956a03d2025871e4d180f2e72dd7ef02614f Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Wed, 23 Jan 2013 15:28:38 +0300 Subject: [PATCH] smatch_expressions: introduce deref_expression() You give it the expression for "p" and it gives you "*p". Signed-off-by: Dan Carpenter --- smatch_expressions.c | 10 ++++++++++ smatch_extra.h | 1 + 2 files changed, 11 insertions(+) diff --git a/smatch_expressions.c b/smatch_expressions.c index 8c56e137..6bdf4448 100644 --- a/smatch_expressions.c +++ b/smatch_expressions.c @@ -37,6 +37,16 @@ struct expression *member_expression(struct expression *deref, int op, struct id return expr; } +struct expression *deref_expression(struct expression *expr) +{ + struct expression *preop; + + preop = alloc_expression(pos, EXPR_PREOP); + preop->unop = expr; + preop->op = '*'; + return preop; +} + struct expression *assign_expression(struct expression *left, struct expression *right) { struct expression *expr; diff --git a/smatch_extra.h b/smatch_extra.h index c77f77b3..37cdeaed 100644 --- a/smatch_extra.h +++ b/smatch_extra.h @@ -143,6 +143,7 @@ void function_comparison(int comparison, struct expression *expr, sval_t sval, i struct expression *zero_expr(); struct expression *value_expr(long long val); struct expression *member_expression(struct expression *deref, int op, struct ident *member); +struct expression *deref_expression(struct expression *expr); struct expression *assign_expression(struct expression *left, struct expression *right); struct expression *symbol_expression(struct symbol *sym); -- 2.11.4.GIT