From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2126) id 92FEA3858D1E; Mon, 13 Feb 2023 22:28:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 92FEA3858D1E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1676327325; bh=N9MUkeUrjejZA9FNRPFxh/RYDYO9zJb3Fw44F2bPT1M=; h=From:To:Subject:Date:From; b=iXIL5XnaZFiNVVUSRdyXX3PrFiYYHq2SkfrqJyxlaWDjiEA5jsSx3MPaWBvEHiutN xkKGkJ6Us1ytV1UhElzyKRBf3bBPwwLMq9q8XfoLuHAd4cLzWFd63Mmed4RIXH2CvL NvGfXHOfWCHyVzEngxJSdhKie6klySdJ6+IJwYLU= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Tom Tromey To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Convert value_lval_const and deprecated_lval_hack to methods X-Act-Checkin: binutils-gdb X-Git-Author: Tom Tromey X-Git-Refname: refs/heads/master X-Git-Oldrev: b9f74d5432ffeef0e2281cb09c28d4b6d0371603 X-Git-Newrev: 970441058c4fc01a3a78773a004196e3037825ed Message-Id: <20230213222845.92FEA3858D1E@sourceware.org> Date: Mon, 13 Feb 2023 22:28:45 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D970441058c4f= c01a3a78773a004196e3037825ed commit 970441058c4fc01a3a78773a004196e3037825ed Author: Tom Tromey Date: Tue Jan 31 12:16:29 2023 -0700 Convert value_lval_const and deprecated_lval_hack to methods =20 This converts the value_lval_const and deprecated_lval_hack functions to be methods on value. =20 Approved-By: Simon Marchi Diff: --- gdb/f-lang.c | 2 +- gdb/gnu-v3-abi.c | 4 ++-- gdb/valprint.c | 6 +++--- gdb/value.c | 14 +------------- gdb/value.h | 12 +++++++----- 5 files changed, 14 insertions(+), 24 deletions(-) diff --git a/gdb/f-lang.c b/gdb/f-lang.c index d88e81c4a11..57c31efc980 100644 --- a/gdb/f-lang.c +++ b/gdb/f-lang.c @@ -458,7 +458,7 @@ fortran_associated (struct gdbarch *gdbarch, const lang= uage_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) !=3D lval_memory + if (target->lval () !=3D lval_memory || type_not_associated (pointer_type) || (TYPE_ASSOCIATED_PROP (pointer_type) =3D=3D nullptr && pointer_type->code () =3D=3D TYPE_CODE_PTR diff --git a/gdb/gnu-v3-abi.c b/gdb/gnu-v3-abi.c index 36d54b9312b..dc249f0980e 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) =3D=3D lval_memory) + if (value->lval () =3D=3D lval_memory) value =3D coerce_ref (value); =20 type =3D 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 () =3D=3D TYPE_CODE_STRUCT - && value_lval_const (value) =3D=3D lval_memory + && value->lval () =3D=3D lval_memory && gnuv3_dynamic_class (type)) { struct value *vtable, *typeinfo_value; diff --git a/gdb/valprint.c b/gdb/valprint.c index 8a4147944fa..fbbaaa4a58e 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 =3D coerce_ref_if_computed (val); =20 if (deref_val !=3D NULL) - ref_is_addressable =3D value_lval_const (deref_val) =3D=3D lval_memory; + ref_is_addressable =3D deref_val->lval () =3D=3D lval_memory; } =20 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 !=3D NULL && value_lval_const (val) =3D=3D lval_register) + if (val !=3D NULL && val->lval () =3D=3D lval_register) val_print_not_saved (stream); else fprintf_styled (stream, metadata_style.style (), _("")); @@ -548,7 +548,7 @@ get_value_addr_contents (struct value *deref_val) { gdb_assert (deref_val !=3D NULL); =20 - if (value_lval_const (deref_val) =3D=3D lval_memory) + if (deref_val->lval () =3D=3D 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 b26d4cd8f11..c56c04d448f 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -1398,18 +1398,6 @@ value::computed_closure () const return m_location.computed.closure; } =20 -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; =20 - if (value_lval_const (arg) !=3D lval_computed) + if (arg->lval () !=3D lval_computed) return NULL; =20 funcs =3D arg->computed_funcs (); diff --git a/gdb/value.h b/gdb/value.h index a0455ed5809..30c2cb48b70 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -310,6 +310,12 @@ struct value uses. */ void *computed_closure () const; =20 + enum lval_type *deprecated_lval_hack () + { return &m_lval; } + + enum lval_type lval () const + { return m_lval; } + =20 /* 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 ())) =20 /* If lval =3D=3D lval_memory, return the address in the inferior. If lval =3D=3D lval_register, return the byte offset into the registers