From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gproxy3-pub.mail.unifiedlayer.com (gproxy3-pub.mail.unifiedlayer.com [69.89.30.42]) by sourceware.org (Postfix) with ESMTPS id 1E76D385840D for ; Thu, 9 Feb 2023 23:36:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1E76D385840D 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 cmgw11.mail.unifiedlayer.com (unknown [10.0.90.126]) by progateway5.mail.pro1.eigbox.com (Postfix) with ESMTP id 8C3C810048771 for ; Thu, 9 Feb 2023 23:36:33 +0000 (UTC) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTP id QGSvpjIhu2s14QGSvpj1Yu; Thu, 09 Feb 2023 23:36:33 +0000 X-Authority-Reason: nr=8 X-Authority-Analysis: v=2.4 cv=R7DGpfdX c=1 sm=1 tr=0 ts=63e58381 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=40k_50kCSyWTxUfR4oUA:9 a=QEXdDO2ut3YA:10:nop_charset_2 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc: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=VB5znTQ9vBmMglwuDObCi3naRvqCr9+SrlqSno3Fv44=; b=Wi6GJiZ17WgVSVb1R9365/uDkb ADwkm+L/wFzN4NDlKVPH1/p4vsE4M/Wwwl4wfkptatk5BYS1CuByfe2J0fMMfH4hBMQMPVfr1jBYz gtoUVteWjczAnnGNPST+dneGG; Received: from 75-166-130-93.hlrn.qwest.net ([75.166.130.93]:52822 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 1pQEcu-001ZcE-Ra for gdb-patches@sourceware.org; Thu, 09 Feb 2023 14:38:44 -0700 From: Tom Tromey Date: Thu, 09 Feb 2023 14:38:59 -0700 Subject: [PATCH 38/47] Turn set_value_component_location into method MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230209-submit-value-fixups-2023-v1-38-55dc2794dbb9@tromey.com> References: <20230209-submit-value-fixups-2023-v1-0-55dc2794dbb9@tromey.com> In-Reply-To: <20230209-submit-value-fixups-2023-v1-0-55dc2794dbb9@tromey.com> To: gdb-patches@sourceware.org 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: 1pQEcu-001ZcE-Ra 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]:52822 X-Source-Auth: tom+tromey.com X-Email-Count: 5 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3027.6 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 turns set_value_component_location into a method of value. --- gdb/ada-lang.c | 4 ++-- gdb/valarith.c | 2 +- gdb/valops.c | 2 +- gdb/value.c | 29 ++++++++++++++--------------- gdb/value.h | 9 ++++----- 5 files changed, 22 insertions(+), 24 deletions(-) diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 1b0dc2291d0..37aea44b8d5 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -567,7 +567,7 @@ coerce_unspec_val_to_type (struct value *val, struct type *type) result = value::allocate (type); value_contents_copy (result, 0, val, 0, type->length ()); } - set_value_component_location (result, val); + result->set_component_location (val); result->set_bitsize (val->bitsize ()); result->set_bitpos (val->bitpos ()); if (VALUE_LVAL (result) == lval_memory) @@ -2830,7 +2830,7 @@ ada_value_primitive_packed_val (struct value *obj, const gdb_byte *valaddr, { long new_offset = offset; - set_value_component_location (v, obj); + v->set_component_location (obj); v->set_bitpos (bit_offset + obj->bitpos ()); v->set_bitsize (bit_size); if (v->bitpos () >= HOST_CHAR_BIT) diff --git a/gdb/valarith.c b/gdb/valarith.c index a453eb1f40d..328781ba784 100644 --- a/gdb/valarith.c +++ b/gdb/valarith.c @@ -94,7 +94,7 @@ value_ptradd (struct value *arg1, LONGEST arg2) result = value_from_pointer (valptrtype, value_as_address (arg1) + sz * arg2); if (VALUE_LVAL (result) != lval_internalvar) - set_value_component_location (result, arg1); + result->set_component_location (arg1); return result; } diff --git a/gdb/valops.c b/gdb/valops.c index 656ed700fb1..85add0c7f9a 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -4087,7 +4087,7 @@ value_slice (struct value *array, int lowbound, int length) type_length_units (slice_type)); } - set_value_component_location (slice, array); + slice->set_component_location (array); slice->set_offset (array->offset () + offset); } diff --git a/gdb/value.c b/gdb/value.c index 9cef9f4fcea..bb23ff2dc40 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -1464,25 +1464,24 @@ value::force_lval (CORE_ADDR addr) } void -set_value_component_location (struct value *component, - const struct value *whole) +value::set_component_location (const struct value *whole) { struct type *type; gdb_assert (whole->m_lval != lval_xcallable); if (whole->m_lval == lval_internalvar) - VALUE_LVAL (component) = lval_internalvar_component; + VALUE_LVAL (this) = lval_internalvar_component; else - VALUE_LVAL (component) = whole->m_lval; + VALUE_LVAL (this) = whole->m_lval; - component->m_location = whole->m_location; + m_location = whole->m_location; if (whole->m_lval == lval_computed) { const struct lval_funcs *funcs = whole->m_location.computed.funcs; if (funcs->copy_closure) - component->m_location.computed.closure = funcs->copy_closure (whole); + m_location.computed.closure = funcs->copy_closure (whole); } /* If the WHOLE value has a dynamically resolved location property then @@ -1490,11 +1489,11 @@ set_value_component_location (struct value *component, type = whole->type (); if (NULL != TYPE_DATA_LOCATION (type) && TYPE_DATA_LOCATION_KIND (type) == PROP_CONST) - component->set_address (TYPE_DATA_LOCATION_ADDR (type)); + set_address (TYPE_DATA_LOCATION_ADDR (type)); /* Similarly, if the COMPONENT value has a dynamically resolved location property then update its address. */ - type = component->type (); + type = this->type (); if (NULL != TYPE_DATA_LOCATION (type) && TYPE_DATA_LOCATION_KIND (type) == PROP_CONST) { @@ -1515,14 +1514,14 @@ set_value_component_location (struct value *component, carry around both the parent value contents, and the contents of any dynamic fields within the parent. This is a substantial change to how values work in GDB. */ - if (VALUE_LVAL (component) == lval_internalvar_component) + if (VALUE_LVAL (this) == lval_internalvar_component) { - gdb_assert (component->lazy ()); - VALUE_LVAL (component) = lval_memory; + gdb_assert (lazy ()); + VALUE_LVAL (this) = lval_memory; } else - gdb_assert (VALUE_LVAL (component) == lval_memory); - component->set_address (TYPE_DATA_LOCATION_ADDR (type)); + gdb_assert (VALUE_LVAL (this) == lval_memory); + set_address (TYPE_DATA_LOCATION_ADDR (type)); } } @@ -2825,7 +2824,7 @@ value_primitive_field (struct value *arg1, LONGEST offset, v->m_offset = (arg1->offset () + offset + arg1->embedded_offset ()); } - set_value_component_location (v, arg1); + v->set_component_location (arg1); return v; } @@ -3423,7 +3422,7 @@ value_from_component (struct value *whole, struct type *type, LONGEST offset) type_length_units (type)); } v->m_offset = whole->offset () + offset + whole->embedded_offset (); - set_value_component_location (v, whole); + v->set_component_location (whole); return v; } diff --git a/gdb/value.h b/gdb/value.h index ba45ad64ff0..46b7e62e610 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -540,6 +540,10 @@ struct value LVAL_MEMORY. */ void force_lval (CORE_ADDR); + /* Set this values's location as appropriate for a component of + WHOLE --- regardless of what kind of lvalue WHOLE is. */ + void set_component_location (const struct value *whole); + /* Type of value; either not an lval, or one of the various different possible kinds of lval. */ @@ -824,11 +828,6 @@ struct lval_funcs extern void error_value_optimized_out (void); -/* Set COMPONENT's location as appropriate for a component of WHOLE - --- regardless of what kind of lvalue WHOLE is. */ -extern void set_value_component_location (struct value *component, - const struct value *whole); - /* While the following fields are per- VALUE .CONTENT .PIECE (i.e., a single value might have multiple LVALs), this hacked interface is limited to just the first PIECE. Expect further change. */ -- 2.39.1