From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by sourceware.org (Postfix) with ESMTPS id 64DF0385842B for ; Tue, 9 Jan 2024 17:03:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 64DF0385842B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 64DF0385842B Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704819831; cv=none; b=ecW5r4bEdeNgQXrmCn2LvAD3QydIGE2T1ynjvAhs+BHezB+q9JC95vPQ3cDrKCmhdAtmVyDm4QP+fK35HLAXLOfQahme3XF5S2FNo2/zg/NiBcqSP7HNBwByWwED2fdxX4FRi2F0EtuhvgcZcXjhOCulhqeRdZuuEudnY8CqXhQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704819831; c=relaxed/simple; bh=7FjIuESqBThjxFehSAbtSRMg3hVTr8kNxANoT/RBVcE=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=Y8wDKEEfJM6hVXjKTzpZqUQKb96ajsUh4uQ2eS5WNgqo50eRRMkRsA8+NRpcCvKAxuSYRm2sS2yCJ/+qHoz5RO+6yN38htnNp56O/AbrTmeyGI80kQyP84dEPfexBZoRL/Cp6Dl6B8ufhWHTDyWfkci8JZxNdiHTv+W+bjLhwvI= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 5268B1FB3C for ; Tue, 9 Jan 2024 17:03:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1704819827; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7VA2g4IuZq3voLFQbIF5BkFBumCSOl30dYouOOKzykY=; b=Gcxqr0hs7JIwwrrM/Q/SK5YIJC3T2VvysUyHhCBTu8o5k6CCN83z62/oIzVOEmyDhu6u5l wrPd1YT7I3dkKXIM7iAt/KrD5WIYDGDcYtgIaXzgT7YbmoEY4uBc62DB/gI1kyuPIySaLG X3waNLGFjFPmL3jDkJDuPJIcRSGf174= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1704819827; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7VA2g4IuZq3voLFQbIF5BkFBumCSOl30dYouOOKzykY=; b=xqsoXNu6mMLcsKIa94MPt27TmsHlxtS4I92pYvMzpE7llGXRRK8vdGPCPot+6yBrTfAcAY U98cE5jr8aSAuEBQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1704819827; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7VA2g4IuZq3voLFQbIF5BkFBumCSOl30dYouOOKzykY=; b=Gcxqr0hs7JIwwrrM/Q/SK5YIJC3T2VvysUyHhCBTu8o5k6CCN83z62/oIzVOEmyDhu6u5l wrPd1YT7I3dkKXIM7iAt/KrD5WIYDGDcYtgIaXzgT7YbmoEY4uBc62DB/gI1kyuPIySaLG X3waNLGFjFPmL3jDkJDuPJIcRSGf174= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1704819827; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7VA2g4IuZq3voLFQbIF5BkFBumCSOl30dYouOOKzykY=; b=xqsoXNu6mMLcsKIa94MPt27TmsHlxtS4I92pYvMzpE7llGXRRK8vdGPCPot+6yBrTfAcAY U98cE5jr8aSAuEBQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 3B4D413CB3 for ; Tue, 9 Jan 2024 17:03:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id CM5EDXN8nWUUFwAAD6G6ig (envelope-from ) for ; Tue, 09 Jan 2024 17:03:47 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH v2 2/3] gdb/symtab: Make cooked_index_entry::parent_entry private Date: Tue, 9 Jan 2024 18:04:20 +0100 Message-Id: <20240109170421.4688-3-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240109170421.4688-1-tdevries@suse.de> References: <20240109170421.4688-1-tdevries@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spamd-Bar: ++ Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=Gcxqr0hs; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=xqsoXNu6 X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [2.99 / 50.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; FROM_HAS_DN(0.00)[]; DWL_DNSWL_MED(-2.00)[suse.de:dkim]; R_MISSING_CHARSET(2.50)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; BROKEN_CONTENT_TYPE(1.50)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_NONE(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; DKIM_TRACE(0.00)[suse.de:+]; MX_GOOD(-0.01)[]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; NEURAL_SPAM_LONG(3.50)[1.000]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_ALL(0.00)[]; BAYES_HAM(-3.00)[100.00%] X-Spam-Score: 2.99 X-Rspamd-Queue-Id: 5268B1FB3C X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,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 List-Id: Make cooked_index_entry::parent_entry private, and add member functions to access it. Tested on x86_64-linux and ppc64le-linux. Tested-By: Alexandra Petlanova Hajkova --- gdb/dwarf2/cooked-index.c | 14 +++++++------- gdb/dwarf2/cooked-index.h | 25 +++++++++++++++++++------ gdb/dwarf2/read.c | 6 +++--- 3 files changed, 29 insertions(+), 16 deletions(-) diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c index c82f49e1462..a4a400e8eae 100644 --- a/gdb/dwarf2/cooked-index.c +++ b/gdb/dwarf2/cooked-index.c @@ -203,7 +203,7 @@ cooked_index_entry::full_name (struct obstack *storage, bool for_main) const { const char *local_name = for_main ? name : canonical; - if ((flags & IS_LINKAGE) != 0 || parent_entry == nullptr) + if ((flags & IS_LINKAGE) != 0 || get_parent () == nullptr) return local_name; const char *sep = nullptr; @@ -224,7 +224,7 @@ cooked_index_entry::full_name (struct obstack *storage, bool for_main) const return local_name; } - parent_entry->write_scope (storage, sep, for_main); + get_parent ()->write_scope (storage, sep, for_main); obstack_grow0 (storage, local_name, strlen (local_name)); return (const char *) obstack_finish (storage); } @@ -236,8 +236,8 @@ cooked_index_entry::write_scope (struct obstack *storage, const char *sep, bool for_main) const { - if (parent_entry != nullptr) - parent_entry->write_scope (storage, sep, for_main); + if (get_parent () != nullptr) + get_parent ()->write_scope (storage, sep, for_main); const char *local_name = for_main ? name : canonical; obstack_grow (storage, local_name, strlen (local_name)); obstack_grow (storage, sep, strlen (sep)); @@ -310,7 +310,7 @@ cooked_index_shard::handle_gnat_encoded_entry (cooked_index_entry *entry, parent = last; } - entry->parent_entry = parent; + entry->set_parent (parent); return make_unique_xstrndup (tail.data (), tail.length ()); } @@ -638,9 +638,9 @@ cooked_index::dump (gdbarch *arch) gdb_printf (" flags: %s\n", to_string (entry->flags).c_str ()); gdb_printf (" DIE offset: %s\n", sect_offset_str (entry->die_offset)); - if (entry->parent_entry != nullptr) + if (entry->get_parent () != nullptr) gdb_printf (" parent: ((cooked_index_entry *) %p) [%s]\n", - entry->parent_entry, entry->parent_entry->name); + entry->get_parent (), entry->get_parent ()->name); else gdb_printf (" parent: ((cooked_index_entry *) 0)\n"); diff --git a/gdb/dwarf2/cooked-index.h b/gdb/dwarf2/cooked-index.h index a2c0d3c23b5..0b6e59333da 100644 --- a/gdb/dwarf2/cooked-index.h +++ b/gdb/dwarf2/cooked-index.h @@ -94,8 +94,8 @@ struct cooked_index_entry : public allocate_on_obstack tag (tag_), flags (flags_), die_offset (die_offset_), - parent_entry (parent_entry_), - per_cu (per_cu_) + per_cu (per_cu_), + m_parent_entry (parent_entry_) { } @@ -220,6 +220,18 @@ struct cooked_index_entry : public allocate_on_obstack return compare (canonical, other.canonical, SORT) < 0; } + /* Set parent entry to PARENT. */ + void set_parent (const cooked_index_entry *parent) + { + m_parent_entry = parent; + } + + /* Return parent entry. */ + const cooked_index_entry *get_parent () const + { + return m_parent_entry; + } + /* The name as it appears in DWARF. This always points into one of the mapped DWARF sections. Note that this may be the name or the linkage name -- two entries are created for DIEs which have both @@ -234,10 +246,6 @@ struct cooked_index_entry : public allocate_on_obstack cooked_index_flag flags; /* The offset of this DIE. */ sect_offset die_offset; - /* The parent entry. This is NULL for top-level entries. - Otherwise, it points to the parent entry, such as a namespace or - class. */ - const cooked_index_entry *parent_entry; /* The CU from which this entry originates. */ dwarf2_per_cu_data *per_cu; @@ -248,6 +256,11 @@ struct cooked_index_entry : public allocate_on_obstack a parent, its write_scope method is called first. */ void write_scope (struct obstack *storage, const char *sep, bool for_name) const; + + /* The parent entry. This is NULL for top-level entries. + Otherwise, it points to the parent entry, such as a namespace or + class. */ + const cooked_index_entry *m_parent_entry; }; class cooked_index; diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index e055371dc6a..818e0f6e58f 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -16508,7 +16508,7 @@ cooked_indexer::index_dies (cutu_reader *reader, /* The scope of a DW_TAG_entry_point cooked_index_entry is the one of its surrounding subroutine. */ if (abbrev->tag == DW_TAG_entry_point) - this_parent_entry = parent_entry->parent_entry; + this_parent_entry = parent_entry->get_parent (); info_ptr = scan_attributes (reader->cu->per_cu, reader, info_ptr, info_ptr, abbrev, &name, &linkage_name, &flags, &sibling, &this_parent_entry, @@ -16847,7 +16847,7 @@ cooked_index_functions::expand_symtabs_matching matches. */ bool found = true; - const cooked_index_entry *parent = entry->parent_entry; + const cooked_index_entry *parent = entry->get_parent (); for (int i = name_vec.size () - 1; i > 0; --i) { /* If we ran out of entries, or if this segment doesn't @@ -16860,7 +16860,7 @@ cooked_index_functions::expand_symtabs_matching break; } - parent = parent->parent_entry; + parent = parent->get_parent (); } if (!found) -- 2.35.3