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 <kevinb@redhat.com>
This commit is contained in:
parent
79771b88bf
commit
4bea97df59
29
gdb/eval.c
29
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 *
|
||||
|
16
gdb/expop.h
16
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; }
|
||||
|
Loading…
x
Reference in New Issue
Block a user