From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id aMltL22utGpfDDsAWB0awg (envelope-from ) for ; Thu, 24 Sep 2026 01:00:29 -0400 Received: by simark.ca (Postfix, from userid 112) id A95DE1E033; Thu, 24 Sep 2026 01:00:29 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 74AA51E033 for ; Thu, 24 Sep 2026 01:00:28 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id F18234BB3BD8 for ; Thu, 24 Sep 2026 05:00:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F18234BB3BD8 Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id 9C3EC4BB3BC7 for ; Thu, 24 Sep 2026 05:00:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9C3EC4BB3BC7 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9C3EC4BB3BC7 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=158.69.221.121 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1790226004; cv=none; b=T1Y1n7abUVY5t08ONCpl9LNMqdFgNIC00KssO4VAJ7ksUhYjDcXnP1+ed5YZiVOjutzQcZB+oYm7O0djHmTqcHzIDxRWeixTOCC3LHjRLbxYpioXyaUHfZBP4cxSKjrqg+kzgsQGVPUZkktWchaDxxxrHMDAArySzBeN7c5uKZc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1790226004; c=relaxed/simple; bh=QRihNrXlhM2a5h8kN22m02WSejio0getMloZzfqsx3Q=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=i/WPoWNRj3m6s22Be+dgJsOqcW9vUcINL2J+NwAvxQqfbV/PPjSZMfc73InTCepUJXMCYWA1otH/YWFGEaZpocH4jQ352xatsX/gv54Lt/WR4Io3K8UZNV13S9gMlf6E4y9LzNDsFuwH4iaB8Wlqurdn2yEBFW0L+AQ00OJ0/2o= ARC-Authentication-Results: i=1; sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9C3EC4BB3BC7 Received: by simark.ca (Postfix) id 449F51E033; Thu, 24 Sep 2026 01:00:03 -0400 (EDT) From: Simon Marchi To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH 0/2] gdb: resolve class name via DW_AT_signature in cooked index Date: Thu, 24 Sep 2026 00:59:35 -0400 Message-ID: <20260924050002.1539783-1-simon.marchi@efficios.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org This is v5 of Andrew's fix for PR gdb/33447, where qualified member function lookup fails for C++ binaries built by Clang with -fdebug-types-section. v4 was here: https://inbox.sourceware.org/gdb-patches/e78a75720042dba3d3b052883d2d84d374ffc157.1789555833.git.aburgess@redhat.com/ I wrote this version addressing some comments I had on v4, with the hope that it can be ready to merge before the release planned on Friday. The main changes are: - Patch 1 is new preparatory patch that does a bit of refactoring. It splits cooked_index_shard::finalize into separate steps, making it easier for patch 2 to add more steps. - The deferred names mechanism now uses a flag on the cooked_index_entries (like the deferred parents)rather than a vector. This is probably what Tom meant in earlier reviews, but I did not understand at the time. When I finally understood how the deferred parent mechanism worked, it seemed logical to implement the deferred names mechanism the same way, at least for consistency. Scanning over all index entries is relatively fast anyway, and this step only runs if actually needed. Andrew Burgess (1): gdb: resolve class name via DW_AT_signature in cooked index Simon Marchi (1): gdb: split cooked index finalization into separate steps gdb/dwarf2/abbrev.c | 1 + gdb/dwarf2/cooked-index-entry.c | 15 +- gdb/dwarf2/cooked-index-entry.h | 75 +++++++- gdb/dwarf2/cooked-index-shard.c | 132 ++++++++++--- gdb/dwarf2/cooked-index-shard.h | 69 ++++++- gdb/dwarf2/cooked-index-worker.c | 9 + gdb/dwarf2/cooked-index-worker.h | 30 ++- gdb/dwarf2/cooked-index.c | 179 +++++++++++++++--- gdb/dwarf2/cooked-index.h | 64 ++++++- gdb/dwarf2/cooked-indexer.c | 60 ++++-- gdb/dwarf2/cooked-indexer.h | 1 + gdb/dwarf2/index-write.c | 2 +- .../ada-forward-spec-deferred-grandparent.exp | 81 ++++++++ .../sig-type-unnamed-class-bad-sig.exp | 155 +++++++++++++++ .../gdb.dwarf2/sig-type-unnamed-class-dwo.exp | 143 ++++++++++++++ .../gdb.dwarf2/sig-type-unnamed-class.exp | 106 +++++++++++ 16 files changed, 1030 insertions(+), 92 deletions(-) create mode 100644 gdb/testsuite/gdb.dwarf2/ada-forward-spec-deferred-grandparent.exp create mode 100644 gdb/testsuite/gdb.dwarf2/sig-type-unnamed-class-bad-sig.exp create mode 100644 gdb/testsuite/gdb.dwarf2/sig-type-unnamed-class-dwo.exp create mode 100644 gdb/testsuite/gdb.dwarf2/sig-type-unnamed-class.exp base-commit: af53f4d1644ef024c8c91a3dcc733958becfeac0 -- 2.55.0