Remove eval_op_ternop
authorTom Tromey <tromey@adacore.com>
Tue, 29 Aug 2023 16:51:33 +0000 (10:51 -0600)
committerTom Tromey <tromey@adacore.com>
Thu, 31 Aug 2023 16:56:07 +0000 (10:56 -0600)
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>
gdb/eval.c
gdb/expop.h

index 81b7aa0cb9931282d82d7b64f8d676ec781b0ff6..5a255ab66c9483f9dbfcb7210ab9e4b3dff3beb8 100644 (file)
@@ -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 *
index a9da11cc70d31c075383508da01b2a90101b1d15..25769d5b81024371f4bc2d7042fe4538eab8a656 100644 (file)
@@ -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; }