From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gproxy4-pub.mail.unifiedlayer.com (gproxy4-pub.mail.unifiedlayer.com [69.89.23.142]) by sourceware.org (Postfix) with ESMTPS id D455A3858D35 for ; Mon, 13 Feb 2023 03:53:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D455A3858D35 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 cmgw14.mail.unifiedlayer.com (unknown [10.0.90.129]) by progateway6.mail.pro1.eigbox.com (Postfix) with ESMTP id 52DAB100443F3 for ; Mon, 13 Feb 2023 03:53:31 +0000 (UTC) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTP id RPuFpjPVcBkq3RPuFpu0WM; Mon, 13 Feb 2023 03:53:31 +0000 X-Authority-Reason: nr=8 X-Authority-Analysis: v=2.4 cv=DdHSFthW c=1 sm=1 tr=0 ts=63e9b43b 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=40k_50kCSyWTxUfR4oUA: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=wwwmqve9ex5acrM/5XoH6bhAuI6NmSyz9f9CoCkAGV8=; b=GvT+InC3WTTSui9k0O5UWmJ2ss /YPJzBnkykUcURfRJrk7CSEuW8jhkLsMYE0vEWI9RUEeCQvI3enwdBWqtzIkMR2yx1s9Qg5hZVFF4 PCE8NmtzPj7My4R6HoflyvG/p; 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 1pRPJU-001AGJ-7h; Sun, 12 Feb 2023 20:15:32 -0700 From: Tom Tromey Date: Sun, 12 Feb 2023 20:15:55 -0700 Subject: [PATCH v3 39/50] 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-v3-39-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: 1pRPJU-001AGJ-7h 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: 67 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 turns set_value_component_location into a method of value. Approved-By: Simon Marchi --- 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 854d061aecc..e3c51609172 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 b088a5d99ae..137134abe6c 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 15bf84c7a9d..0fcd8a85f23 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -1599,25 +1599,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 @@ -1625,11 +1624,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) { @@ -1650,14 +1649,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)); } } @@ -2986,7 +2985,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; } @@ -3584,7 +3583,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 6cc845c42b8..448f0123f70 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -539,6 +539,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. */ @@ -858,11 +862,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