Remove evaluate_expression
authorTom Tromey <tromey@adacore.com>
Fri, 28 Apr 2023 13:24:59 +0000 (07:24 -0600)
committerTom Tromey <tromey@adacore.com>
Mon, 1 May 2023 17:04:13 +0000 (11:04 -0600)
evaluate_expression is just a little wrapper for a method on
expression.  Removing it also removes a lot of ugly (IMO) calls to
get().

18 files changed:
gdb/ada-lang.c
gdb/arc-tdep.c
gdb/breakpoint.c
gdb/cli/cli-script.c
gdb/darwin-nat-info.c
gdb/dtrace-probe.c
gdb/eval.c
gdb/expression.h
gdb/linux-thread-db.c
gdb/mi/mi-main.c
gdb/objc-lang.c
gdb/printcmd.c
gdb/stack.c
gdb/stap-probe.c
gdb/tracepoint.c
gdb/value.c
gdb/value.h
gdb/varobj.c

index 3a9f554ce4ce58122448c59f9e1f5aa614a55166..50d5c6f969717270d45381a1630a95584e3b12bd 100644 (file)
@@ -4339,7 +4339,7 @@ ada_read_renaming_var_value (struct symbol *renaming_sym,
 
   sym_name = renaming_sym->linkage_name ();
   expression_up expr = parse_exp_1 (&sym_name, 0, block, 0);
-  return evaluate_expression (expr.get ());
+  return expr->evaluate ();
 }
 \f
 
@@ -12318,7 +12318,7 @@ should_stop_exception (const struct bp_location *bl)
   try
     {
       scoped_value_mark mark;
-      stop = value_true (evaluate_expression (ada_loc->excep_cond_expr.get ()));
+      stop = value_true (ada_loc->excep_cond_expr->evaluate ());
     }
   catch (const gdb_exception_error &ex)
     {
index bbf4846a8f83f7f86d3a082dfdba5df4ac153ff2..0b541c6335aef7a98219ae28b6d2926742a9c680 100644 (file)
@@ -2434,7 +2434,7 @@ dump_arc_instruction_command (const char *args, int from_tty)
 {
   struct value *val;
   if (args != NULL && strlen (args) > 0)
-    val = evaluate_expression (parse_expression (args).get ());
+    val = parse_expression (args)->evaluate ();
   else
     val = access_value_history (0);
   val->record_latest ();
index 46287da5f87c2166f15ddb911287809343d036b0..20e016e8cb343c551257839d30816cea2125d6b3 100644 (file)
@@ -4984,7 +4984,7 @@ static bool
 breakpoint_cond_eval (expression *exp)
 {
   scoped_value_mark mark;
-  return value_true (evaluate_expression (exp));
+  return value_true (exp->evaluate ());
 }
 
 /* Allocate a new bpstat.  Link it to the FIFO list by BS_LINK_POINTER.  */
index 294a5f18fe6c9e53ac9ee2cf815050324c31c31c..b96dd74330ca247eff3e1839d9228577e6224757 100644 (file)
@@ -567,7 +567,7 @@ execute_control_command_1 (struct command_line *cmd, int from_tty)
            /* Evaluate the expression.  */
            {
              scoped_value_mark mark;
-             value *val = evaluate_expression (expr.get ());
+             value *val = expr->evaluate ();
              cond_result = value_true (val);
            }
 
@@ -622,7 +622,7 @@ execute_control_command_1 (struct command_line *cmd, int from_tty)
        /* Evaluate the conditional.  */
        {
          scoped_value_mark mark;
-         value *val = evaluate_expression (expr.get ());
+         value *val = expr->evaluate ();
 
          /* Choose which arm to take commands from based on the value
             of the conditional expression.  */
index 9e562074cf83db1c4d2470da4f27037ee302dff8..d5f633bccae242a4f0a09ff63c0ebb04011aba50 100644 (file)
@@ -723,7 +723,7 @@ info_mach_region_command (const char *exp, int from_tty)
   struct inferior *inf;
 
   expression_up expr = parse_expression (exp);
-  val = evaluate_expression (expr.get ());
+  val = expr->evaluate ();
   if (TYPE_IS_REFERENCE (val->type ()))
     {
       val = value_ind (val);
index 70fa1a9413ee4813b611741d23451437f54328ff..dad15df5b99b0e9a55e087dae347ea9375deaac1 100644 (file)
@@ -714,7 +714,7 @@ dtrace_probe::evaluate_argument (unsigned n,
   struct dtrace_probe_arg *arg;
 
   arg = this->get_arg_by_number (n, gdbarch);
-  return evaluate_expression (arg->expr.get (), arg->type);
+  return arg->expr->evaluate (arg->type);
 }
 
 /* Implementation of the compile_to_ax method.  */
index 8db9c4df1abc7bf6d7b378af91d6e24062967e3e..82b5fe26b62a95e24daed6c7f77e81ab6525101c 100644 (file)
@@ -53,7 +53,7 @@ parse_and_eval_address (const char *exp)
 {
   expression_up expr = parse_expression (exp);
 
-  return value_as_address (evaluate_expression (expr.get ()));
+  return value_as_address (expr->evaluate ());
 }
 
 /* Like parse_and_eval_address, but treats the value of the expression
@@ -63,7 +63,7 @@ parse_and_eval_long (const char *exp)
 {
   expression_up expr = parse_expression (exp);
 
-  return value_as_long (evaluate_expression (expr.get ()));
+  return value_as_long (expr->evaluate ());
 }
 
 struct value *
@@ -71,7 +71,7 @@ parse_and_eval (const char *exp)
 {
   expression_up expr = parse_expression (exp);
 
-  return evaluate_expression (expr.get ());
+  return expr->evaluate ();
 }
 
 /* Parse up to a comma (or to a closeparen)
@@ -83,7 +83,7 @@ parse_to_comma_and_eval (const char **expp)
 {
   expression_up expr = parse_exp_1 (expp, 0, nullptr, 1);
 
-  return evaluate_expression (expr.get ());
+  return expr->evaluate ();
 }
 \f
 
@@ -116,14 +116,6 @@ expression::evaluate (struct type *expect_type, enum noside noside)
   return retval;
 }
 
-/* See value.h.  */
-
-struct value *
-evaluate_expression (struct expression *exp, struct type *expect_type)
-{
-  return exp->evaluate (expect_type, EVAL_NORMAL);
-}
-
 /* Evaluate an expression, avoiding all memory references
    and getting a value whose type alone is correct.  */
 
index 77949ddaf4b3859c59335a4814285ba494393cab..5bfb051a393db8413325199ecc00b9ae5455456b 100644 (file)
@@ -222,7 +222,8 @@ struct expression
   /* Evaluate the expression.  EXPECT_TYPE is the context type of the
      expression; normally this should be nullptr.  NOSIDE controls how
      evaluation is performed.  */
-  struct value *evaluate (struct type *expect_type, enum noside noside);
+  struct value *evaluate (struct type *expect_type = nullptr,
+                         enum noside noside = EVAL_NORMAL);
 
   /* Language it was entered in.  */
   const struct language_defn *language_defn;
index 0e190f9426688588241f871b4b6078fa96e77303..71a81aa0cb915fc1e506735f5cd90a8e6c5472c8 100644 (file)
@@ -694,7 +694,7 @@ check_thread_db_callback (const td_thrhandle_t *th, void *arg)
       switch_to_thread (thread_info);
 
       expression_up expr = parse_expression ("(int) errno");
-      struct value *val = evaluate_expression (expr.get ());
+      struct value *val = expr->evaluate ();
 
       if (tdb_testinfo->log_progress)
        {
index 0013e5dfafdbb0c2996088c5a9b2549906401bc8..683d36d93d511f75a6e756a3309117d77b92d6ac 100644 (file)
@@ -1189,7 +1189,7 @@ mi_cmd_data_evaluate_expression (const char *command, char **argv, int argc)
 
   expression_up expr = parse_expression (argv[0]);
 
-  val = evaluate_expression (expr.get ());
+  val = expr->evaluate ();
 
   string_file stb;
 
@@ -2468,7 +2468,7 @@ print_variable_or_computed (const char *expression, enum print_values values)
   if (values == PRINT_SIMPLE_VALUES)
     val = evaluate_type (expr.get ());
   else
-    val = evaluate_expression (expr.get ());
+    val = expr->evaluate ();
 
   gdb::optional<ui_out_emit_tuple> tuple_emitter;
   if (values != PRINT_NO_VALUES)
index 4a9dee44dd709a04e9e9521206d6bf9d445d9326..ccbe7c19729d2e747d7e95fd38a3f845f2df4d2e 100644 (file)
@@ -1164,9 +1164,7 @@ print_object_command (const char *args, int from_tty)
   {
     expression_up expr = parse_expression (args);
 
-    object
-      = evaluate_expression (expr.get (),
-                            builtin_type (expr->gdbarch)->builtin_data_ptr);
+    object = expr->evaluate (builtin_type (expr->gdbarch)->builtin_data_ptr);
   }
 
   /* Validate the address for sanity.  */
index f6d5bad8ae06a39f2dba492ba198d2ecdc5058f5..e903bf48fa5658764eea16b12d4abb780df519a3 100644 (file)
@@ -1316,7 +1316,7 @@ process_print_command_args (const char *args, value_print_options *print_opts,
       /* VOIDPRINT is true to indicate that we do want to print a void
         value, so invert it for parse_expression.  */
       expression_up expr = parse_expression (exp, nullptr, !voidprint);
-      return evaluate_expression (expr.get ());
+      return expr->evaluate ();
     }
 
   return access_value_history (0);
@@ -1495,7 +1495,7 @@ output_command (const char *exp, int from_tty)
 
   expression_up expr = parse_expression (exp);
 
-  val = evaluate_expression (expr.get ());
+  val = expr->evaluate ();
 
   annotate_value_begin (val->type ());
 
@@ -1534,7 +1534,7 @@ set_command (const char *exp, int from_tty)
        (_("Expression is not an assignment (and might have no effect)"));
     }
 
-  evaluate_expression (expr.get ());
+  expr->evaluate ();
 }
 
 static void
@@ -1900,7 +1900,7 @@ x_command (const char *exp, int from_tty)
         command's definition.  */
       if (from_tty)
        set_repeat_arguments ("");
-      val = evaluate_expression (expr.get ());
+      val = expr->evaluate ();
       if (TYPE_IS_REFERENCE (val->type ()))
        val = coerce_ref (val);
       /* In rvalue contexts, such as this, functions are coerced into
@@ -2188,7 +2188,7 @@ do_one_display (struct display *d)
          struct value *val;
          CORE_ADDR addr;
 
-         val = evaluate_expression (d->exp.get ());
+         val = d->exp->evaluate ();
          addr = value_as_address (val);
          if (d->format.format == 'i')
            addr = gdbarch_addr_bits_remove (d->exp->gdbarch, addr);
@@ -2226,7 +2226,7 @@ do_one_display (struct display *d)
        {
          struct value *val;
 
-         val = evaluate_expression (d->exp.get ());
+         val = d->exp->evaluate ();
          print_formatted (val, d->format.size, &opts, gdb_stdout);
        }
       catch (const gdb_exception_error &ex)
index 03e903d901b686cc0d3d64fae332e4e8286cbdbb..b1b25aa1c7e150981925ee1d161cd732c2ee5ea0 100644 (file)
@@ -2722,7 +2722,7 @@ return_command (const char *retval_exp, int from_tty)
 
       /* Compute the return value.  Should the computation fail, this
         call throws an error.  */
-      return_value = evaluate_expression (retval_expr.get ());
+      return_value = retval_expr->evaluate ();
 
       /* Cast return value to the return type of the function.  Should
         the cast fail, this call throws an error.  */
index c7ad35db06f3f539e4c59db77496c8ad256985f1..756e90d219255040ff01ce99008f7b3daec9220e 100644 (file)
@@ -1444,7 +1444,7 @@ stap_probe::evaluate_argument (unsigned n, frame_info_ptr frame)
   struct gdbarch *gdbarch = get_frame_arch (frame);
 
   arg = this->get_arg_by_number (n, gdbarch);
-  return evaluate_expression (arg->aexpr.get (), arg->atype);
+  return arg->aexpr->evaluate (arg->atype);
 }
 
 /* Compile the probe's argument N (indexed from 0) to agent expression.
index c8bac7a01221450b53b001eaa7549c768617d833..ffda4a6439e4e3cdad08ec3e8816ca180882b279 100644 (file)
@@ -1375,7 +1375,7 @@ encode_actions_1 (struct command_line *action,
                    case UNOP_MEMVAL:
                      {
                        /* Safe because we know it's a simple expression.  */
-                       tempval = evaluate_expression (exp.get ());
+                       tempval = exp->evaluate ();
                        addr = tempval->address ();
                        expr::unop_memval_operation *memop
                          = (gdb::checked_static_cast<expr::unop_memval_operation *>
index eab1933b2568d08db8b1dad36db6b42885bb5a75..01c30eb3f93f4cc134f6d95d6d00f571fccdaef9 100644 (file)
@@ -1896,7 +1896,7 @@ init_if_undefined_command (const char* args, int from_tty)
   /* Only evaluate the expression if the lvalue is void.
      This may still fail if the expression is invalid.  */
   if (intvar->kind == INTERNALVAR_VOID)
-    evaluate_expression (expr.get ());
+    expr->evaluate ();
 }
 
 
index e13f92c397bd25159cf8d00d5b47efdea9c9d4f4..f6092aba5a447f0a532505f902ea6b27d8b95a04 100644 (file)
@@ -1299,15 +1299,6 @@ extern int using_struct_return (struct gdbarch *gdbarch,
                                struct value *function,
                                struct type *value_type);
 
-/* Evaluate the expression EXP.  If set, EXPECT_TYPE is passed to the
-   outermost operation's evaluation.  This is ignored by most
-   operations, but may be used, e.g., to determine the type of an
-   otherwise untyped symbol.  The caller should not assume that the
-   returned value has this type.  */
-
-extern struct value *evaluate_expression (struct expression *exp,
-                                         struct type *expect_type = nullptr);
-
 extern struct value *evaluate_type (struct expression *exp);
 
 extern value *evaluate_var_value (enum noside noside, const block *blk,
index 5a5e55c2d82684e48f671a6ee084c279683d3caa..75b4d44b1091badd93ccbc5bf9b11ff8c6c8502e 100644 (file)
@@ -364,12 +364,12 @@ varobj_create (const char *objname,
          select_frame (fi);     
        }
 
-      /* We definitely need to catch errors here.
-        If evaluate_expression succeeds we got the value we wanted.
-        But if it fails, we still go on with a call to evaluate_type().  */
+      /* We definitely need to catch errors here.  If evaluation of
+        the expression succeeds, we got the value we wanted.  But if
+        it fails, we still go on with a call to evaluate_type().  */
       try
        {
-         value = evaluate_expression (var->root->exp.get ());
+         value = var->root->exp->evaluate ();
        }
       catch (const gdb_exception_error &except)
        {
@@ -979,7 +979,7 @@ varobj_set_value (struct varobj *var, const char *expression)
   expression_up exp = parse_exp_1 (&s, 0, 0, 0);
   try
     {
-      value = evaluate_expression (exp.get ());
+      value = exp->evaluate ();
     }
 
   catch (const gdb_exception_error &except)
@@ -1995,7 +1995,7 @@ value_of_root_1 (struct varobj **var_handle)
         expression fails we want to just return NULL.  */
       try
        {
-         new_val = evaluate_expression (var->root->exp.get ());
+         new_val = var->root->exp->evaluate ();
        }
       catch (const gdb_exception_error &except)
        {