From 4bea97df59d505e1e74876b94cd3f99a42f742d9 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 29 Aug 2023 10:51:33 -0600 Subject: Remove eval_op_ternop eval_op_ternop is only used by the implementation of ternop_slice_operation. While working on another series, it was convenient for me to merge this function into its only caller. Reviewed-by: Kevin Buettner --- gdb/eval.c | 29 +++++++++++++++++------------ gdb/expop.h | 16 +--------------- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/gdb/eval.c b/gdb/eval.c index 81b7aa0..5a255ab 100644 --- a/gdb/eval.c +++ b/gdb/eval.c @@ -1155,6 +1155,23 @@ string_operation::evaluate (struct type *expect_type, return value_string (str.c_str (), str.size (), type); } +struct value * +ternop_slice_operation::evaluate (struct type *expect_type, + struct expression *exp, + enum noside noside) +{ + struct value *array + = std::get<0> (m_storage)->evaluate (nullptr, exp, noside); + struct value *low + = std::get<1> (m_storage)->evaluate (nullptr, exp, noside); + struct value *upper + = std::get<2> (m_storage)->evaluate (nullptr, exp, noside); + + int lowbound = value_as_long (low); + int upperbound = value_as_long (upper); + return value_slice (array, lowbound, upperbound - lowbound + 1); +} + } /* namespace expr */ /* Helper function that implements the body of OP_OBJC_SELECTOR. */ @@ -1169,18 +1186,6 @@ eval_op_objc_selector (struct type *expect_type, struct expression *exp, lookup_child_selector (exp->gdbarch, sel)); } -/* A helper function for TERNOP_SLICE. */ - -struct value * -eval_op_ternop (struct type *expect_type, struct expression *exp, - enum noside noside, - struct value *array, struct value *low, struct value *upper) -{ - int lowbound = value_as_long (low); - int upperbound = value_as_long (upper); - return value_slice (array, lowbound, upperbound - lowbound + 1); -} - /* A helper function for STRUCTOP_STRUCT. */ struct value * diff --git a/gdb/expop.h b/gdb/expop.h index a9da11c..25769d5 100644 --- a/gdb/expop.h +++ b/gdb/expop.h @@ -64,11 +64,6 @@ extern struct value *eval_op_func_static_var (struct type *expect_type, extern struct value *eval_op_register (struct type *expect_type, struct expression *exp, enum noside noside, const char *name); -extern struct value *eval_op_ternop (struct type *expect_type, - struct expression *exp, - enum noside noside, - struct value *array, struct value *low, - struct value *upper); extern struct value *eval_op_structop_struct (struct type *expect_type, struct expression *exp, enum noside noside, @@ -939,16 +934,7 @@ public: value *evaluate (struct type *expect_type, struct expression *exp, - enum noside noside) override - { - struct value *array - = std::get<0> (m_storage)->evaluate (nullptr, exp, noside); - struct value *low - = std::get<1> (m_storage)->evaluate (nullptr, exp, noside); - struct value *upper - = std::get<2> (m_storage)->evaluate (nullptr, exp, noside); - return eval_op_ternop (expect_type, exp, noside, array, low, upper); - } + enum noside noside) override; enum exp_opcode opcode () const override { return TERNOP_SLICE; } -- cgit v1.1