From patchwork Thu Apr 27 18:08:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 68396 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 848023857006 for ; Thu, 27 Apr 2023 18:08:42 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from alt-proxy28.mail.unifiedlayer.com (alt-proxy28.mail.unifiedlayer.com [74.220.216.123]) by sourceware.org (Postfix) with ESMTPS id CD68A3858C2D for ; Thu, 27 Apr 2023 18:08:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CD68A3858C2D 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 progateway1.mail.pro1.eigbox.com (Postfix) with ESMTP id 2051410038991 for ; Thu, 27 Apr 2023 18:08:25 +0000 (UTC) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTP id s62bpGckwUwlvs62bpr885; Thu, 27 Apr 2023 18:08:25 +0000 X-Authority-Reason: nr=8 X-Authority-Analysis: v=2.4 cv=BbEdbph2 c=1 sm=1 tr=0 ts=644aba19 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=dKHAf1wccvYA:10:nop_rcvd_month_year a=Qbun_eYptAEA:10:endurance_base64_authed_username_1 a=J7ek4UONq95vYVDHRJEA:9 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject: Cc:To:From:Sender:Reply-To:Content-Type:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=0noCaNno46M/R61fA31UjM681puRi7uqh63bg0t/dIU=; b=KjM+EBU8+8+OkPoSaN1xyMefOO yLvzLjbo3SvrVK844FWOYR2s+Bp3oaRMDB5SbfbmyUgmn6AHicQuSYBAsuX/Y6DpQL2y0grBocPIK e0fei2ogG6gfRTj4T7belF+6l; Received: from 71-211-191-82.hlrn.qwest.net ([71.211.191.82]:36190 helo=localhost.localdomain) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1ps62a-003lIk-RY; Thu, 27 Apr 2023 12:08:24 -0600 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH] Replace field_is_static with a method Date: Thu, 27 Apr 2023 12:08:15 -0600 Message-Id: <20230427180815.2253826-1-tom@tromey.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.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: 71.211.191.82 X-Source-L: No X-Exim-ID: 1ps62a-003lIk-RY X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-191-82.hlrn.qwest.net (localhost.localdomain) [71.211.191.82]:36190 X-Source-Auth: tom+tromey.com X-Email-Count: 1 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3025.8 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, T_SCC_BODY_TEXT_LINE 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 field_is_static to be a method on struct field, and updates all the callers. Most of this patch was written by script. Regression tested on x86-64 Fedora 36. --- gdb/aarch64-tdep.c | 4 ++-- gdb/amd64-tdep.c | 4 ++-- gdb/arm-tdep.c | 2 +- gdb/ax-gdb.c | 6 +++--- gdb/c-typeprint.c | 2 +- gdb/c-varobj.c | 2 +- gdb/compile/compile-c-symbols.c | 2 +- gdb/compile/compile-cplus-types.c | 2 +- gdb/cp-valprint.c | 10 +++++----- gdb/eval.c | 2 +- gdb/gdbtypes.c | 20 ++++---------------- gdb/gdbtypes.h | 14 ++++++++++++-- gdb/gnu-v3-abi.c | 2 +- gdb/i386-tdep.c | 2 +- gdb/loongarch-tdep.c | 2 +- gdb/mips-tdep.c | 2 +- gdb/p-typeprint.c | 4 ++-- gdb/p-valprint.c | 8 ++++---- gdb/ppc-sysv-tdep.c | 2 +- gdb/python/py-type.c | 2 +- gdb/rust-lang.c | 8 ++++---- gdb/s390-tdep.c | 2 +- gdb/typeprint.c | 2 +- gdb/valops.c | 6 +++--- 24 files changed, 55 insertions(+), 57 deletions(-) diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index ec0e51bdaf7..6402b28158e 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -1537,7 +1537,7 @@ aapcs_is_vfp_call_or_return_candidate_1 (struct type *type, for (int i = 0; i < type->num_fields (); i++) { /* Ignore any static fields. */ - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) continue; struct type *member = check_typedef (type->field (i).type ()); @@ -1813,7 +1813,7 @@ pass_in_v_vfp_candidate (struct gdbarch *gdbarch, struct regcache *regcache, for (int i = 0; i < arg_type->num_fields (); i++) { /* Don't include static fields. */ - if (field_is_static (&arg_type->field (i))) + if (arg_type->field (i).is_static ()) continue; struct value *field = arg->primitive_field (0, i, arg_type); diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c index 8d345257e12..d37497a2345 100644 --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c @@ -557,7 +557,7 @@ amd64_has_unaligned_fields (struct type *type) /* Ignore static fields, empty fields (for example nested empty structures), and bitfields (these are handled by the caller). */ - if (field_is_static (&type->field (i)) + if (type->field (i).is_static () || (TYPE_FIELD_BITSIZE (type, i) == 0 && subtype->length () == 0) || TYPE_FIELD_PACKED (type, i)) @@ -601,7 +601,7 @@ amd64_classify_aggregate_field (struct type *type, int i, /* Ignore static fields, or empty fields, for example nested empty structures.*/ - if (field_is_static (&type->field (i)) || bitsize == 0) + if (type->field (i).is_static () || bitsize == 0) return; int bitpos = bitoffset + type->field (i).loc_bitpos (); diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index bfe7d63ed8f..a49a8b7a976 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -4524,7 +4524,7 @@ arm_vfp_cprc_sub_candidate (struct type *t, { int sub_count = 0; - if (!field_is_static (&t->field (i))) + if (!t->field (i).is_static ()) sub_count = arm_vfp_cprc_sub_candidate (t->field (i).type (), base_type); if (sub_count == -1) diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c index 9dda7fe524d..528f45e19eb 100644 --- a/gdb/ax-gdb.c +++ b/gdb/ax-gdb.c @@ -210,7 +210,7 @@ gen_trace_static_fields (struct agent_expr *ax, for (i = type->num_fields () - 1; i >= nbases; i--) { - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) { gen_static_field (ax, &value, type, i); if (value.optimized_out) @@ -1359,7 +1359,7 @@ gen_struct_ref_recursive (struct agent_expr *ax, struct axs_value *value, "this") will have been generated already, which will be unnecessary but not harmful if the static field is being handled as a global. */ - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) { gen_static_field (ax, value, type, i); if (value->optimized_out) @@ -1495,7 +1495,7 @@ gen_struct_elt_for_reference (struct agent_expr *ax, struct axs_value *value, if (t_field_name && strcmp (t_field_name, fieldname) == 0) { - if (field_is_static (&t->field (i))) + if (t->field (i).is_static ()) { gen_static_field (ax, value, t, i); if (value->optimized_out) diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c index 7e9d941a435..416f63bacf5 100644 --- a/gdb/c-typeprint.c +++ b/gdb/c-typeprint.c @@ -1113,7 +1113,7 @@ c_type_print_base_struct_union (struct type *type, struct ui_file *stream, TYPE_FIELD_PRIVATE (type, i), flags); } - bool is_static = field_is_static (&type->field (i)); + bool is_static = type->field (i).is_static (); if (flags->print_offsets) podata->update (type, i, stream); diff --git a/gdb/c-varobj.c b/gdb/c-varobj.c index ef4d0bd5047..d2a415e60c2 100644 --- a/gdb/c-varobj.c +++ b/gdb/c-varobj.c @@ -254,7 +254,7 @@ value_struct_element_index (struct value *value, int type_index) try { - if (field_is_static (&type->field (type_index))) + if (type->field (type_index).is_static ()) result = value_static_field (type, type_index); else result = value->primitive_field (0, type_index, type); diff --git a/gdb/compile/compile-c-symbols.c b/gdb/compile/compile-c-symbols.c index e21689dc25b..617297c3263 100644 --- a/gdb/compile/compile-c-symbols.c +++ b/gdb/compile/compile-c-symbols.c @@ -528,7 +528,7 @@ generate_vla_size (compile_instance *compiler, int i; for (i = 0; i < type->num_fields (); ++i) - if (!field_is_static (&type->field (i))) + if (!type->field (i).is_static ()) generate_vla_size (compiler, stream, gdbarch, registers_used, pc, type->field (i).type (), sym); } diff --git a/gdb/compile/compile-cplus-types.c b/gdb/compile/compile-cplus-types.c index 02cd3810b5d..2f87ad865fa 100644 --- a/gdb/compile/compile-cplus-types.c +++ b/gdb/compile/compile-cplus-types.c @@ -594,7 +594,7 @@ compile_cplus_convert_struct_or_union_members gcc_type field_type = instance->convert_type (type->field (i).type ()); - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) { CORE_ADDR physaddr; diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c index 167cf0314af..8fad9523a7e 100644 --- a/gdb/cp-valprint.c +++ b/gdb/cp-valprint.c @@ -193,7 +193,7 @@ cp_print_value_fields (struct value *val, struct ui_file *stream, /* If requested, skip printing of static fields. */ if (!options->static_field_print - && field_is_static (&type->field (i))) + && type->field (i).is_static ()) continue; if (fields_seen) @@ -227,7 +227,7 @@ cp_print_value_fields (struct value *val, struct ui_file *stream, annotate_field_begin (type->field (i).type ()); - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) { gdb_puts ("static ", stream); fprintf_symbol (stream, @@ -258,7 +258,7 @@ cp_print_value_fields (struct value *val, struct ui_file *stream, } annotate_field_value (); - if (!field_is_static (&type->field (i)) + if (!type->field (i).is_static () && TYPE_FIELD_PACKED (type, i)) { struct value *v; @@ -295,7 +295,7 @@ cp_print_value_fields (struct value *val, struct ui_file *stream, fputs_styled ("", metadata_style.style (), stream); } - else if (field_is_static (&type->field (i))) + else if (type->field (i).is_static ()) { try { @@ -637,7 +637,7 @@ cp_find_class_member (struct type **self_p, int *fieldno, for (i = TYPE_N_BASECLASSES (self); i < len; i++) { field &f = self->field (i); - if (field_is_static (&f)) + if (f.is_static ()) continue; LONGEST bitpos = f.loc_bitpos (); diff --git a/gdb/eval.c b/gdb/eval.c index 6b362f46424..8db9c4df1ab 100644 --- a/gdb/eval.c +++ b/gdb/eval.c @@ -2366,7 +2366,7 @@ array_operation::evaluate_struct_tuple (struct value *struct_val, fieldno++; /* Skip static fields. */ while (fieldno < struct_type->num_fields () - && field_is_static (&struct_type->field (fieldno))) + && struct_type->field (fieldno).is_static ()) fieldno++; if (fieldno >= struct_type->num_fields ()) error (_("too many initializers")); diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index 6af59351b76..dcd96511a13 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -2117,7 +2117,7 @@ is_dynamic_type_internal (struct type *type, int top_level) for (i = 0; i < type->num_fields (); ++i) { /* Static fields can be ignored here. */ - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) continue; /* If the field has dynamic type, then so does TYPE. */ if (is_dynamic_type_internal (type->field (i).type (), 0)) @@ -2465,7 +2465,7 @@ resolve_dynamic_union (struct type *type, { struct type *t; - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) continue; t = resolve_dynamic_type_internal (resolved_type->field (i).type (), @@ -2681,7 +2681,7 @@ resolve_dynamic_struct (struct type *type, unsigned new_bit_length; struct property_addr_info pinfo; - if (field_is_static (&resolved_type->field (i))) + if (resolved_type->field (i).is_static ()) continue; if (resolved_type->field (i).loc_kind () == FIELD_LOC_KIND_DWARF_BLOCK) @@ -3586,7 +3586,7 @@ type_align (struct type *type) int number_of_non_static_fields = 0; for (unsigned i = 0; i < type->num_fields (); ++i) { - if (!field_is_static (&type->field (i))) + if (!type->field (i).is_static ()) { number_of_non_static_fields++; ULONGEST f_align = type_align (type->field (i).type ()); @@ -4945,18 +4945,6 @@ print_args (struct field *args, int nargs, int spaces) } } -int -field_is_static (struct field *f) -{ - /* "static" fields are the fields whose location is not relative - to the address of the enclosing struct. It would be nice to - have a dedicated flag that would be set for static fields when - the type is being created. But in practice, checking the field - loc_kind should give us an accurate answer. */ - return (f->loc_kind () == FIELD_LOC_KIND_PHYSNAME - || f->loc_kind () == FIELD_LOC_KIND_PHYSADDR); -} - static void dump_fn_fieldlists (struct type *type, int spaces) { diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index b5cccb784b2..9254ec994e3 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -559,6 +559,18 @@ struct field m_name = name; } + /* Return true if this field is static; false if not. */ + bool is_static () const + { + /* "static" fields are the fields whose location is not relative + to the address of the enclosing struct. It would be nice to + have a dedicated flag that would be set for static fields when + the type is being created. But in practice, checking the field + loc_kind should give us an accurate answer. */ + return (m_loc_kind == FIELD_LOC_KIND_PHYSNAME + || m_loc_kind == FIELD_LOC_KIND_PHYSADDR); + } + /* Location getters / setters. */ field_loc_kind loc_kind () const @@ -2686,8 +2698,6 @@ extern struct rank rank_one_type (struct type *, struct type *, extern void recursive_dump_type (struct type *, int); -extern int field_is_static (struct field *); - /* printcmd.c */ extern void print_scalar_formatted (const gdb_byte *, struct type *, diff --git a/gdb/gnu-v3-abi.c b/gdb/gnu-v3-abi.c index 12bc5b09a93..4d1aa12746f 100644 --- a/gdb/gnu-v3-abi.c +++ b/gdb/gnu-v3-abi.c @@ -1536,7 +1536,7 @@ gnuv3_pass_by_reference (struct type *type) about recursive loops here, since we are only looking at members of complete class type. Also ignore any static members. */ for (fieldnum = 0; fieldnum < type->num_fields (); fieldnum++) - if (!field_is_static (&type->field (fieldnum))) + if (!type->field (fieldnum).is_static ()) { struct type *field_type = type->field (fieldnum).type (); diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 1ab9fc0e87d..2c73c123c3a 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -2698,7 +2698,7 @@ i386_16_byte_align_p (struct type *type) int i; for (i = 0; i < type->num_fields (); i++) { - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) continue; if (i386_16_byte_align_p (type->field (i).type ())) return 1; diff --git a/gdb/loongarch-tdep.c b/gdb/loongarch-tdep.c index 74f14c40d51..5739af6cc87 100644 --- a/gdb/loongarch-tdep.c +++ b/gdb/loongarch-tdep.c @@ -521,7 +521,7 @@ compute_struct_member (struct type *type, for (int i = 0; i < type->num_fields (); i++) { /* Ignore any static fields. */ - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) continue; struct type *field_type = check_typedef (type->field (i).type ()); diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index 7092b266db3..6bbee0556ae 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -4886,7 +4886,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type, struct type *field_type; /* We're only looking at normal fields. */ - if (field_is_static (&arg_type->field (i)) + if (arg_type->field (i).is_static () || (arg_type->field (i).loc_bitpos () % 8) != 0) continue; diff --git a/gdb/p-typeprint.c b/gdb/p-typeprint.c index 7458aa6c095..563f619425b 100644 --- a/gdb/p-typeprint.c +++ b/gdb/p-typeprint.c @@ -516,12 +516,12 @@ pascal_language::type_print_base (struct type *type, struct ui_file *stream, int } print_spaces (level + 4, stream); - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) gdb_printf (stream, "static "); print_type (type->field (i).type (), type->field (i).name (), stream, show - 1, level + 4, flags); - if (!field_is_static (&type->field (i)) + if (!type->field (i).is_static () && TYPE_FIELD_PACKED (type, i)) { /* It is a bitfield. This code does not attempt diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c index d74c738bc22..2136a192bbc 100644 --- a/gdb/p-valprint.c +++ b/gdb/p-valprint.c @@ -553,7 +553,7 @@ pascal_object_print_value_fields (struct value *val, struct ui_file *stream, { /* If requested, skip printing of static fields. */ if (!options->pascal_static_field_print - && field_is_static (&type->field (i))) + && type->field (i).is_static ()) continue; if (fields_seen) gdb_printf (stream, ", "); @@ -582,7 +582,7 @@ pascal_object_print_value_fields (struct value *val, struct ui_file *stream, annotate_field_begin (type->field (i).type ()); - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) { gdb_puts ("static ", stream); fprintf_symbol (stream, @@ -597,7 +597,7 @@ pascal_object_print_value_fields (struct value *val, struct ui_file *stream, gdb_puts (" = ", stream); annotate_field_value (); - if (!field_is_static (&type->field (i)) + if (!type->field (i).is_static () && TYPE_FIELD_PACKED (type, i)) { struct value *v; @@ -634,7 +634,7 @@ pascal_object_print_value_fields (struct value *val, struct ui_file *stream, fputs_styled ("", metadata_style.style (), stream); } - else if (field_is_static (&type->field (i))) + else if (type->field (i).is_static ()) { /* struct value *v = value_static_field (type, i); v4.17 specific. */ diff --git a/gdb/ppc-sysv-tdep.c b/gdb/ppc-sysv-tdep.c index 66630793e86..20e732ff162 100644 --- a/gdb/ppc-sysv-tdep.c +++ b/gdb/ppc-sysv-tdep.c @@ -1149,7 +1149,7 @@ ppc64_aggregate_candidate (struct type *type, { LONGEST sub_count; - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) continue; sub_count = ppc64_aggregate_candidate diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c index b68ec8d2c92..feb94efb461 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -154,7 +154,7 @@ convert_field (struct type *type, int field) if (PyObject_SetAttrString (result.get (), "parent_type", arg.get ()) < 0) return NULL; - if (!field_is_static (&type->field (field))) + if (!type->field (field).is_static ()) { const char *attrstring; diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c index 3ef8fcaa329..a060720fd76 100644 --- a/gdb/rust-lang.c +++ b/gdb/rust-lang.c @@ -130,7 +130,7 @@ rust_underscore_fields (struct type *type) return false; for (i = 0; i < type->num_fields (); ++i) { - if (!field_is_static (&type->field (i))) + if (!type->field (i).is_static ()) { char buf[20]; @@ -403,7 +403,7 @@ rust_language::val_print_struct first_field = 1; for (i = 0; i < type->num_fields (); ++i) { - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) continue; if (!first_field) @@ -723,7 +723,7 @@ rust_print_struct_def (struct type *type, const char *varstring, std::vector fields; for (int i = 0; i < type->num_fields (); ++i) { - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) continue; if (is_enum && TYPE_FIELD_ARTIFICIAL (type, i)) continue; @@ -741,7 +741,7 @@ rust_print_struct_def (struct type *type, const char *varstring, { QUIT; - gdb_assert (!field_is_static (&type->field (i))); + gdb_assert (!type->field (i).is_static ()); gdb_assert (! (is_enum && TYPE_FIELD_ARTIFICIAL (type, i))); if (flags->print_offsets) diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c index 047ee088aed..54b5c89e5e3 100644 --- a/gdb/s390-tdep.c +++ b/gdb/s390-tdep.c @@ -1648,7 +1648,7 @@ s390_effective_inner_type (struct type *type, unsigned int min_size) { struct field f = type->field (i); - if (field_is_static (&f)) + if (f.is_static ()) continue; if (inner != NULL) return type; diff --git a/gdb/typeprint.c b/gdb/typeprint.c index 06ecd2c4776..bfe851f348c 100644 --- a/gdb/typeprint.c +++ b/gdb/typeprint.c @@ -125,7 +125,7 @@ void print_offset_data::update (struct type *type, unsigned int field_idx, struct ui_file *stream) { - if (field_is_static (&type->field (field_idx))) + if (type->field (field_idx).is_static ()) { print_spaces (indentation, stream); return; diff --git a/gdb/valops.c b/gdb/valops.c index d002c9dca9b..22be4805a52 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -2017,7 +2017,7 @@ struct_field_searcher::search (struct value *arg1, LONGEST offset, { struct value *v; - if (field_is_static (&type->field (i))) + if (type->field (i).is_static ()) v = value_static_field (type, i); else v = arg1->primitive_field (offset, i, type); @@ -2462,7 +2462,7 @@ value_struct_elt_bitpos (struct value **argp, int bitpos, struct type *ftype, for (i = TYPE_N_BASECLASSES (t); i < t->num_fields (); i++) { - if (!field_is_static (&t->field (i)) + if (!t->field (i).is_static () && bitpos == t->field (i).loc_bitpos () && types_equal (ftype, t->field (i).type ())) return (*argp)->primitive_field (0, i, t); @@ -3581,7 +3581,7 @@ value_struct_elt_for_reference (struct type *domain, int offset, if (t_field_name && strcmp (t_field_name, name) == 0) { - if (field_is_static (&t->field (i))) + if (t->field (i).is_static ()) { struct value *v = value_static_field (t, i); if (want_address)