diff options
author | Tom Tromey <tom@tromey.com> | 2021-03-08 07:27:57 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2021-03-08 07:28:13 -0700 |
commit | e18c58f290609dcfe8d7df450bb88b1adf44337a (patch) | |
tree | e38597b2301232a98b2bcd0a65e5beb54411f9bd /gdb/ax-gdb.c | |
parent | c0d7ed8ca842c9b199722a878f46adab7b9320ff (diff) | |
download | gdb-e18c58f290609dcfe8d7df450bb88b1adf44337a.zip gdb-e18c58f290609dcfe8d7df450bb88b1adf44337a.tar.gz gdb-e18c58f290609dcfe8d7df450bb88b1adf44337a.tar.bz2 |
Split gen_expr_binop_rest
This splits gen_expr_binop_rest into two overloads. One overload
retains the "pc" parameter, while the other does not, and furthermore
does not call gen_expr on the left-hand-side. This split is useful
for subsequent patches in the new expression evaluation approach.
gdb/ChangeLog
2021-03-08 Tom Tromey <tom@tromey.com>
* ax-gdb.c (gen_expr_binop_rest): Remove "pc" parameter.
(gen_expr_binop_rest): New overload.
Diffstat (limited to 'gdb/ax-gdb.c')
-rw-r--r-- | gdb/ax-gdb.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c index fa77728..e18e968 100644 --- a/gdb/ax-gdb.c +++ b/gdb/ax-gdb.c @@ -2276,13 +2276,12 @@ gen_expr (struct expression *exp, union exp_element **pc, static void gen_expr_binop_rest (struct expression *exp, - enum exp_opcode op, union exp_element **pc, + enum exp_opcode op, struct agent_expr *ax, struct axs_value *value, struct axs_value *value1, struct axs_value *value2) { struct type *int_type = builtin_type (ax->gdbarch)->builtin_int; - gen_expr (exp, pc, ax, value2); gen_usual_unary (ax, value2); gen_usual_arithmetic (ax, value1, value2); switch (op) @@ -2420,6 +2419,19 @@ gen_expr_binop_rest (struct expression *exp, _("gen_expr: op case sets don't match")); } } + +/* Variant of gen_expr_binop_rest that first generates the + right-hand-side. */ + +static void +gen_expr_binop_rest (struct expression *exp, + enum exp_opcode op, union exp_element **pc, + struct agent_expr *ax, struct axs_value *value, + struct axs_value *value1, struct axs_value *value2) +{ + gen_expr (exp, pc, ax, value2); + gen_expr_binop_rest (exp, op, ax, value, value1, value2); +} /* Given a single variable and a scope, generate bytecodes to trace |