From patchwork Thu Feb 9 21:38:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 64568 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 644F6382EF3C for ; Thu, 9 Feb 2023 21:40:29 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from gproxy3-pub.mail.unifiedlayer.com (gproxy3-pub.mail.unifiedlayer.com [69.89.30.42]) by sourceware.org (Postfix) with ESMTPS id AFF81385800C for ; Thu, 9 Feb 2023 21:38:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AFF81385800C 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 cmgw12.mail.unifiedlayer.com (unknown [10.0.90.127]) by progateway5.mail.pro1.eigbox.com (Postfix) with ESMTP id 134BC10073826 for ; Thu, 9 Feb 2023 21:38:42 +0000 (UTC) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTP id QEcspzBP4P796QEcspwoWa; Thu, 09 Feb 2023 21:38:42 +0000 X-Authority-Reason: nr=8 X-Authority-Analysis: v=2.4 cv=MJClJOVl c=1 sm=1 tr=0 ts=63e567e2 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=Zij_WFtluohOMlTzaY8A: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=xrKVtNYHnrk+9kqPsGfrLpXL6GCYpWaceh8ZhYbeIQs=; b=QSYMfoFltdVP2wkhY1Fpypau34 1/nUogyJmfJ/kAWtTPcj4nRu6JE1l4tR2KJ6+X2FoeVOypk93uo4F+iO5PRZ0ZDPwN4cT2CmvavK2 vAzCk4ygbUwV8dPBZBs8gBIsF; 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 1pQEcr-001ZcE-Ss for gdb-patches@sourceware.org; Thu, 09 Feb 2023 14:38:41 -0700 From: Tom Tromey Date: Thu, 09 Feb 2023 14:38:37 -0700 Subject: [PATCH 16/47] Turn value_computed_closure and value_computed_funcs functions into methods MIME-Version: 1.0 Message-Id: <20230209-submit-value-fixups-2023-v1-16-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: 1pQEcr-001ZcE-Ss 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: 17 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 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" This changes the value_computed_funcs and value_computed_closure functions to be methods of value. --- gdb/dwarf2/expr.c | 12 ++++++------ gdb/dwarf2/loc.c | 6 +++--- gdb/opencl-lang.c | 10 +++++----- gdb/valops.c | 4 ++-- gdb/value.c | 18 +++++++++--------- gdb/value.h | 18 +++++++++--------- 6 files changed, 34 insertions(+), 34 deletions(-) diff --git a/gdb/dwarf2/expr.c b/gdb/dwarf2/expr.c index 292ac8bb559..8d845e892e3 100644 --- a/gdb/dwarf2/expr.c +++ b/gdb/dwarf2/expr.c @@ -149,7 +149,7 @@ rw_pieced_value (value *v, value *from, bool check_optimized) gdb_byte *v_contents; const gdb_byte *from_contents; piece_closure *c - = (piece_closure *) value_computed_closure (v); + = (piece_closure *) v->computed_closure (); gdb::byte_vector buffer; bool bits_big_endian = type_byte_order (v->type ()) == BFD_ENDIAN_BIG; @@ -463,7 +463,7 @@ static int check_pieced_synthetic_pointer (const value *value, LONGEST bit_offset, int bit_length) { - piece_closure *c = (piece_closure *) value_computed_closure (value); + piece_closure *c = (piece_closure *) value->computed_closure (); int i; bit_offset += 8 * value->offset (); @@ -503,7 +503,7 @@ static value * indirect_pieced_value (value *value) { piece_closure *c - = (piece_closure *) value_computed_closure (value); + = (piece_closure *) value->computed_closure (); int i; dwarf_expr_piece *piece = NULL; @@ -580,7 +580,7 @@ coerce_pieced_ref (const value *value) TARGET_CHAR_BIT * type->length ())) { const piece_closure *closure - = (piece_closure *) value_computed_closure (value); + = (piece_closure *) value->computed_closure (); frame_info_ptr frame = get_selected_frame (_("No frame selected.")); @@ -604,7 +604,7 @@ coerce_pieced_ref (const value *value) static void * copy_pieced_value_closure (const value *v) { - piece_closure *c = (piece_closure *) value_computed_closure (v); + piece_closure *c = (piece_closure *) v->computed_closure (); ++c->refc; return c; @@ -613,7 +613,7 @@ copy_pieced_value_closure (const value *v) static void free_pieced_value_closure (value *v) { - piece_closure *c = (piece_closure *) value_computed_closure (v); + piece_closure *c = (piece_closure *) v->computed_closure (); --c->refc; if (c->refc == 0) diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c index e5b35b8aadb..e975f280cfc 100644 --- a/gdb/dwarf2/loc.c +++ b/gdb/dwarf2/loc.c @@ -1279,7 +1279,7 @@ entry_data_value_coerce_ref (const struct value *value) if (!TYPE_IS_REFERENCE (checked_type)) return NULL; - target_val = (struct value *) value_computed_closure (value); + target_val = (struct value *) value->computed_closure (); value_incref (target_val); return target_val; } @@ -1289,7 +1289,7 @@ entry_data_value_coerce_ref (const struct value *value) static void * entry_data_value_copy_closure (const struct value *v) { - struct value *target_val = (struct value *) value_computed_closure (v); + struct value *target_val = (struct value *) v->computed_closure (); value_incref (target_val); return target_val; @@ -1300,7 +1300,7 @@ entry_data_value_copy_closure (const struct value *v) static void entry_data_value_free_closure (struct value *v) { - struct value *target_val = (struct value *) value_computed_closure (v); + struct value *target_val = (struct value *) v->computed_closure (); value_decref (target_val); } diff --git a/gdb/opencl-lang.c b/gdb/opencl-lang.c index 8c59e823d5c..f7a22b35931 100644 --- a/gdb/opencl-lang.c +++ b/gdb/opencl-lang.c @@ -119,7 +119,7 @@ allocate_lval_closure (int *indices, int n, struct value *val) static void lval_func_read (struct value *v) { - struct lval_closure *c = (struct lval_closure *) value_computed_closure (v); + struct lval_closure *c = (struct lval_closure *) v->computed_closure (); struct type *type = check_typedef (v->type ()); struct type *eltype = check_typedef (c->val->type ())->target_type (); LONGEST offset = v->offset (); @@ -149,7 +149,7 @@ lval_func_write (struct value *v, struct value *fromval) { scoped_value_mark mark; - struct lval_closure *c = (struct lval_closure *) value_computed_closure (v); + struct lval_closure *c = (struct lval_closure *) v->computed_closure (); struct type *type = check_typedef (v->type ()); struct type *eltype = check_typedef (c->val->type ())->target_type (); LONGEST offset = v->offset (); @@ -194,7 +194,7 @@ static int lval_func_check_synthetic_pointer (const struct value *v, LONGEST offset, int length) { - struct lval_closure *c = (struct lval_closure *) value_computed_closure (v); + struct lval_closure *c = (struct lval_closure *) v->computed_closure (); /* Size of the target type in bits. */ int elsize = check_typedef (c->val->type ())->target_type ()->length () * 8; @@ -227,7 +227,7 @@ lval_func_check_synthetic_pointer (const struct value *v, static void * lval_func_copy_closure (const struct value *v) { - struct lval_closure *c = (struct lval_closure *) value_computed_closure (v); + struct lval_closure *c = (struct lval_closure *) v->computed_closure (); ++c->refc; @@ -237,7 +237,7 @@ lval_func_copy_closure (const struct value *v) static void lval_func_free_closure (struct value *v) { - struct lval_closure *c = (struct lval_closure *) value_computed_closure (v); + struct lval_closure *c = (struct lval_closure *) v->computed_closure (); --c->refc; diff --git a/gdb/valops.c b/gdb/valops.c index b4e67951118..17b96ffcc41 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -1273,7 +1273,7 @@ value_assign (struct value *toval, struct value *fromval) case lval_computed: { - const struct lval_funcs *funcs = value_computed_funcs (toval); + const struct lval_funcs *funcs = toval->computed_funcs (); if (funcs->write != NULL) { @@ -1639,7 +1639,7 @@ value_ind (struct value *arg1) if (VALUE_LVAL (arg1) == lval_computed) { - const struct lval_funcs *funcs = value_computed_funcs (arg1); + const struct lval_funcs *funcs = arg1->computed_funcs (); if (funcs->indirect) { diff --git a/gdb/value.c b/gdb/value.c index 6607d871fca..495a45d50ba 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -1253,19 +1253,19 @@ value_bits_synthetic_pointer (const struct value *value, } const struct lval_funcs * -value_computed_funcs (const struct value *v) +value::computed_funcs () const { - gdb_assert (value_lval_const (v) == lval_computed); + gdb_assert (m_lval == lval_computed); - return v->m_location.computed.funcs; + return m_location.computed.funcs; } void * -value_computed_closure (const struct value *v) +value::computed_closure () const { - gdb_assert (v->m_lval == lval_computed); + gdb_assert (m_lval == lval_computed); - return v->m_location.computed.closure; + return m_location.computed.closure; } enum lval_type * @@ -3533,7 +3533,7 @@ coerce_ref_if_computed (const struct value *arg) if (value_lval_const (arg) != lval_computed) return NULL; - funcs = value_computed_funcs (arg); + funcs = arg->computed_funcs (); if (funcs->coerce_ref == NULL) return NULL; @@ -3848,8 +3848,8 @@ value_fetch_lazy (struct value *val) else if (VALUE_LVAL (val) == lval_register) value_fetch_lazy_register (val); else if (VALUE_LVAL (val) == lval_computed - && value_computed_funcs (val)->read != NULL) - value_computed_funcs (val)->read (val); + && val->computed_funcs ()->read != NULL) + val->computed_funcs ()->read (val); else internal_error (_("Unexpected lazy value type.")); diff --git a/gdb/value.h b/gdb/value.h index 2d311c69efb..8a9406d835b 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -302,6 +302,15 @@ struct value void set_stack (int val) { m_stack = val; } + /* If this value is lval_computed, return its lval_funcs + structure. */ + const struct lval_funcs *computed_funcs () const; + + /* If this value is lval_computed, return its closure. The meaning + of the returned value depends on the functions this value + uses. */ + void *computed_closure () const; + /* Type of value; either not an lval, or one of the various different possible kinds of lval. */ @@ -555,15 +564,6 @@ extern struct value *allocate_computed_value (struct type *type, extern struct value *allocate_optimized_out_value (struct type *type); -/* If VALUE is lval_computed, return its lval_funcs structure. */ - -extern const struct lval_funcs *value_computed_funcs (const struct value *); - -/* If VALUE is lval_computed, return its closure. The meaning of the - returned value depends on the functions VALUE uses. */ - -extern void *value_computed_closure (const struct value *value); - /* Throw an error complaining that the value has been optimized out. */