Introduce binop_operation

This adds two new template classes, binop_operation and
usual_ax_binop_operation, and then uses these to implement a number of
binary operations that follow similar patterns.

gdb/ChangeLog
2021-03-08  Tom Tromey  <tom@tromey.com>

	* expop.h (class binop_operation, class usual_ax_binop_operation):
	New.
	(exp_operation, intdiv_operation, mod_operation, mul_operation)
	(div_operation, rem_operation, lsh_operation, rsh_operation)
	(bitwise_and_operation, bitwise_ior_operation)
	(bitwise_xor_operation): New typedefs.
	* eval.c (eval_op_binary): No longer static.
This commit is contained in:
Tom Tromey 2021-03-08 07:27:57 -07:00
parent 5133d78b7b
commit 373907ffb2
3 changed files with 82 additions and 1 deletions

View file

@ -1511,7 +1511,7 @@ eval_op_sub (struct type *expect_type, struct expression *exp,
/* Helper function for several different binary operations. */
static struct value *
struct value *
eval_op_binary (struct type *expect_type, struct expression *exp,
enum noside noside, enum exp_opcode op,
struct value *arg1, struct value *arg2)