Convert value_lval_const and deprecated_lval_hack to methods
authorTom Tromey <tom@tromey.com>
Tue, 31 Jan 2023 19:16:29 +0000 (12:16 -0700)
committerTom Tromey <tom@tromey.com>
Mon, 13 Feb 2023 22:21:07 +0000 (15:21 -0700)
This converts the value_lval_const and deprecated_lval_hack functions
to be methods on value.

Approved-By: Simon Marchi <simon.marchi@efficios.com>
gdb/f-lang.c
gdb/gnu-v3-abi.c
gdb/valprint.c
gdb/value.c
gdb/value.h

index d88e81c4a1151344016885b948c74676b33c0381..57c31efc980d03c788617693b51f29abbdb70ef9 100644 (file)
@@ -458,7 +458,7 @@ fortran_associated (struct gdbarch *gdbarch, const language_defn *lang,
      looking the value of the pointer itself.  We make the assumption that
      a non-associated pointer will be set to 0.  This is probably true for
      most targets, but might not be true for everyone.  */
-  if (value_lval_const (target) != lval_memory
+  if (target->lval () != lval_memory
       || type_not_associated (pointer_type)
       || (TYPE_ASSOCIATED_PROP (pointer_type) == nullptr
          && pointer_type->code () == TYPE_CODE_PTR
index 36d54b9312b7b8fe1e168f8b836bd2d9d5d7cd4f..dc249f0980e1310a4cfe2bdf6a8d618d68d906a8 100644 (file)
@@ -1102,7 +1102,7 @@ gnuv3_get_typeid (struct value *value)
   /* We have to handle values a bit trickily here, to allow this code
      to work properly with non_lvalue values that are really just
      disguised types.  */
-  if (value_lval_const (value) == lval_memory)
+  if (value->lval () == lval_memory)
     value = coerce_ref (value);
 
   type = check_typedef (value->type ());
@@ -1134,7 +1134,7 @@ gnuv3_get_typeid (struct value *value)
   /* We check for lval_memory because in the "typeid (type-id)" case,
      the type is passed via a not_lval value object.  */
   if (type->code () == TYPE_CODE_STRUCT
-      && value_lval_const (value) == lval_memory
+      && value->lval () == lval_memory
       && gnuv3_dynamic_class (type))
     {
       struct value *vtable, *typeinfo_value;
index 8a4147944fa4439e5abd2bf5ca05fea051af76b9..fbbaaa4a58e01697592d4894faac1714cc7afd28 100644 (file)
@@ -392,7 +392,7 @@ valprint_check_validity (struct ui_file *stream,
              const struct value *deref_val = coerce_ref_if_computed (val);
 
              if (deref_val != NULL)
-               ref_is_addressable = value_lval_const (deref_val) == lval_memory;
+               ref_is_addressable = deref_val->lval () == lval_memory;
            }
 
          if (!is_ref || !ref_is_addressable)
@@ -416,7 +416,7 @@ valprint_check_validity (struct ui_file *stream,
 void
 val_print_optimized_out (const struct value *val, struct ui_file *stream)
 {
-  if (val != NULL && value_lval_const (val) == lval_register)
+  if (val != NULL && val->lval () == lval_register)
     val_print_not_saved (stream);
   else
     fprintf_styled (stream, metadata_style.style (), _("<optimized out>"));
@@ -548,7 +548,7 @@ get_value_addr_contents (struct value *deref_val)
 {
   gdb_assert (deref_val != NULL);
 
-  if (value_lval_const (deref_val) == lval_memory)
+  if (deref_val->lval () == lval_memory)
     return value_contents_for_printing_const (value_addr (deref_val)).data ();
   else
     {
index b26d4cd8f117797cbe753d5e7a66b0d523c11bf6..c56c04d448f53f83ce01c1b99e8793803a38531d 100644 (file)
@@ -1398,18 +1398,6 @@ value::computed_closure () const
   return m_location.computed.closure;
 }
 
-enum lval_type *
-deprecated_value_lval_hack (struct value *value)
-{
-  return &value->m_lval;
-}
-
-enum lval_type
-value_lval_const (const struct value *value)
-{
-  return value->m_lval;
-}
-
 CORE_ADDR
 value_address (const struct value *value)
 {
@@ -3694,7 +3682,7 @@ coerce_ref_if_computed (const struct value *arg)
   if (!TYPE_IS_REFERENCE (check_typedef (arg->type ())))
     return NULL;
 
-  if (value_lval_const (arg) != lval_computed)
+  if (arg->lval () != lval_computed)
     return NULL;
 
   funcs = arg->computed_funcs ();
index a0455ed580903ab867c432473fe3c9de69d930ba..30c2cb48b708f05610cfaa6c04ef3395737775be 100644 (file)
@@ -310,6 +310,12 @@ struct value
      uses.  */
   void *computed_closure () const;
 
+  enum lval_type *deprecated_lval_hack ()
+  { return &m_lval; }
+
+  enum lval_type lval () const
+  { return m_lval; }
+
 
   /* Type of value; either not an lval, or one of the various
      different possible kinds of lval.  */
@@ -667,11 +673,7 @@ extern void set_value_component_location (struct value *component,
    limited to just the first PIECE.  Expect further change.  */
 /* Type of value; either not an lval, or one of the various different
    possible kinds of lval.  */
-extern enum lval_type *deprecated_value_lval_hack (struct value *);
-#define VALUE_LVAL(val) (*deprecated_value_lval_hack (val))
-
-/* Like VALUE_LVAL, except the parameter can be const.  */
-extern enum lval_type value_lval_const (const struct value *value);
+#define VALUE_LVAL(val) (*((val)->deprecated_lval_hack ()))
 
 /* If lval == lval_memory, return the address in the inferior.  If
    lval == lval_register, return the byte offset into the registers