mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-16 04:18:50 +00:00
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>
This commit is contained in:
@@ -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
|
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
|
a non-associated pointer will be set to 0. This is probably true for
|
||||||
most targets, but might not be true for everyone. */
|
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_not_associated (pointer_type)
|
||||||
|| (TYPE_ASSOCIATED_PROP (pointer_type) == nullptr
|
|| (TYPE_ASSOCIATED_PROP (pointer_type) == nullptr
|
||||||
&& pointer_type->code () == TYPE_CODE_PTR
|
&& pointer_type->code () == TYPE_CODE_PTR
|
||||||
|
|||||||
@@ -1102,7 +1102,7 @@ gnuv3_get_typeid (struct value *value)
|
|||||||
/* We have to handle values a bit trickily here, to allow this code
|
/* We have to handle values a bit trickily here, to allow this code
|
||||||
to work properly with non_lvalue values that are really just
|
to work properly with non_lvalue values that are really just
|
||||||
disguised types. */
|
disguised types. */
|
||||||
if (value_lval_const (value) == lval_memory)
|
if (value->lval () == lval_memory)
|
||||||
value = coerce_ref (value);
|
value = coerce_ref (value);
|
||||||
|
|
||||||
type = check_typedef (value->type ());
|
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,
|
/* We check for lval_memory because in the "typeid (type-id)" case,
|
||||||
the type is passed via a not_lval value object. */
|
the type is passed via a not_lval value object. */
|
||||||
if (type->code () == TYPE_CODE_STRUCT
|
if (type->code () == TYPE_CODE_STRUCT
|
||||||
&& value_lval_const (value) == lval_memory
|
&& value->lval () == lval_memory
|
||||||
&& gnuv3_dynamic_class (type))
|
&& gnuv3_dynamic_class (type))
|
||||||
{
|
{
|
||||||
struct value *vtable, *typeinfo_value;
|
struct value *vtable, *typeinfo_value;
|
||||||
|
|||||||
@@ -392,7 +392,7 @@ valprint_check_validity (struct ui_file *stream,
|
|||||||
const struct value *deref_val = coerce_ref_if_computed (val);
|
const struct value *deref_val = coerce_ref_if_computed (val);
|
||||||
|
|
||||||
if (deref_val != NULL)
|
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)
|
if (!is_ref || !ref_is_addressable)
|
||||||
@@ -416,7 +416,7 @@ valprint_check_validity (struct ui_file *stream,
|
|||||||
void
|
void
|
||||||
val_print_optimized_out (const struct value *val, struct ui_file *stream)
|
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);
|
val_print_not_saved (stream);
|
||||||
else
|
else
|
||||||
fprintf_styled (stream, metadata_style.style (), _("<optimized out>"));
|
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);
|
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 ();
|
return value_contents_for_printing_const (value_addr (deref_val)).data ();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
14
gdb/value.c
14
gdb/value.c
@@ -1398,18 +1398,6 @@ value::computed_closure () const
|
|||||||
return m_location.computed.closure;
|
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
|
CORE_ADDR
|
||||||
value_address (const struct value *value)
|
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 ())))
|
if (!TYPE_IS_REFERENCE (check_typedef (arg->type ())))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (value_lval_const (arg) != lval_computed)
|
if (arg->lval () != lval_computed)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
funcs = arg->computed_funcs ();
|
funcs = arg->computed_funcs ();
|
||||||
|
|||||||
12
gdb/value.h
12
gdb/value.h
@@ -310,6 +310,12 @@ struct value
|
|||||||
uses. */
|
uses. */
|
||||||
void *computed_closure () const;
|
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
|
/* Type of value; either not an lval, or one of the various
|
||||||
different possible kinds of lval. */
|
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. */
|
limited to just the first PIECE. Expect further change. */
|
||||||
/* Type of value; either not an lval, or one of the various different
|
/* Type of value; either not an lval, or one of the various different
|
||||||
possible kinds of lval. */
|
possible kinds of lval. */
|
||||||
extern enum lval_type *deprecated_value_lval_hack (struct value *);
|
#define VALUE_LVAL(val) (*((val)->deprecated_lval_hack ()))
|
||||||
#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);
|
|
||||||
|
|
||||||
/* If lval == lval_memory, return the address in the inferior. If
|
/* If lval == lval_memory, return the address in the inferior. If
|
||||||
lval == lval_register, return the byte offset into the registers
|
lval == lval_register, return the byte offset into the registers
|
||||||
|
|||||||
Reference in New Issue
Block a user