diff options
author | Tom Tromey <tom@tromey.com> | 2023-01-31 12:16:29 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2023-02-13 15:21:07 -0700 |
commit | 970441058c4fc01a3a78773a004196e3037825ed (patch) | |
tree | 0435630ddd08ceda9207cde6343e6abf6798e9f0 | |
parent | b9f74d5432ffeef0e2281cb09c28d4b6d0371603 (diff) | |
download | gdb-970441058c4fc01a3a78773a004196e3037825ed.zip gdb-970441058c4fc01a3a78773a004196e3037825ed.tar.gz gdb-970441058c4fc01a3a78773a004196e3037825ed.tar.bz2 |
Convert value_lval_const and deprecated_lval_hack to methods
This converts the value_lval_const and deprecated_lval_hack functions
to be methods on value.
Approved-By: Simon Marchi <simon.marchi@efficios.com>
-rw-r--r-- | gdb/f-lang.c | 2 | ||||
-rw-r--r-- | gdb/gnu-v3-abi.c | 4 | ||||
-rw-r--r-- | gdb/valprint.c | 6 | ||||
-rw-r--r-- | gdb/value.c | 14 | ||||
-rw-r--r-- | gdb/value.h | 12 |
5 files changed, 14 insertions, 24 deletions
diff --git a/gdb/f-lang.c b/gdb/f-lang.c index d88e81c..57c31ef 100644 --- a/gdb/f-lang.c +++ b/gdb/f-lang.c @@ -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 diff --git a/gdb/gnu-v3-abi.c b/gdb/gnu-v3-abi.c index 36d54b9..dc249f0 100644 --- a/gdb/gnu-v3-abi.c +++ b/gdb/gnu-v3-abi.c @@ -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; diff --git a/gdb/valprint.c b/gdb/valprint.c index 8a41479..fbbaaa4 100644 --- a/gdb/valprint.c +++ b/gdb/valprint.c @@ -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 { diff --git a/gdb/value.c b/gdb/value.c index b26d4cd..c56c04d 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -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 (); diff --git a/gdb/value.h b/gdb/value.h index a0455ed..30c2cb4 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -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 |