From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from alt-proxy28.mail.unifiedlayer.com (alt-proxy28.mail.unifiedlayer.com [74.220.216.123]) by sourceware.org (Postfix) with ESMTPS id CE4C83857803 for ; Mon, 13 Feb 2023 03:15:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CE4C83857803 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com Received: from cmgw10.mail.unifiedlayer.com (unknown [10.0.90.125]) by progateway1.mail.pro1.eigbox.com (Postfix) with ESMTP id 4D25110040600 for ; Mon, 13 Feb 2023 03:15:28 +0000 (UTC) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTP id RPJQpyfMCA1zNRPJQplPWW; Mon, 13 Feb 2023 03:15:28 +0000 X-Authority-Reason: nr=8 X-Authority-Analysis: v=2.4 cv=CqN6zl0D c=1 sm=1 tr=0 ts=63e9ab50 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10:nop_charset_1 a=m04uMKEZRckA:10:nop_rcvd_month_year a=Qbun_eYptAEA:10:endurance_base64_authed_username_1 a=7d_E57ReAAAA:8 a=3Ry8JFzuqp6LRw9UYEkA:9 a=QEXdDO2ut3YA:10:nop_charset_2 a=jhqOcbufqs7Y1TYCrUUU:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=Zp7RIAqKMJwYoV55u7Jlijvg8oq/gvdWRpUr94EdXWA=; b=nXCb+q5tyYbuqc1noi5R64FIc+ 10vTVcZhc2e55R72E5eSoAFnFxocoMr6XmAqMgC1acQehSUxB8Z0GY0ZB12qDdxJoXznB+iz426d8 16FXt/4/rvc3tZqfQuWJ/Fcif; Received: from 75-166-130-93.hlrn.qwest.net ([75.166.130.93]:37668 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1pRPJQ-001AGJ-35; Sun, 12 Feb 2023 20:15:28 -0700 From: Tom Tromey Date: Sun, 12 Feb 2023 20:15:34 -0700 Subject: [PATCH v3 18/50] Convert value_lval_const and deprecated_lval_hack to methods MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230209-submit-value-fixups-2023-v3-18-45e91a20c742@tromey.com> References: <20230209-submit-value-fixups-2023-v3-0-45e91a20c742@tromey.com> In-Reply-To: <20230209-submit-value-fixups-2023-v3-0-45e91a20c742@tromey.com> To: gdb-patches@sourceware.org Cc: Simon Marchi X-Mailer: b4 0.12.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 75.166.130.93 X-Source-L: No X-Exim-ID: 1pRPJQ-001AGJ-35 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 75-166-130-93.hlrn.qwest.net ([192.168.0.21]) [75.166.130.93]:37668 X-Source-Auth: tom+tromey.com X-Email-Count: 39 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3027.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,JMQ_SPF_NEUTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This converts the value_lval_const and deprecated_lval_hack functions to be methods on value. Approved-By: Simon Marchi --- 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 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 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) == 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 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 = 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 (), _("")); @@ -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 b26d4cd8f11..c56c04d448f 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 a0455ed5809..30c2cb48b70 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 -- 2.39.1