From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id cZMVAJkma2m+SgcAWB0awg (envelope-from ) for ; Sat, 17 Jan 2026 01:05:13 -0500 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=polymtl.ca header.i=@polymtl.ca header.a=rsa-sha256 header.s=oct2025 header.b=iEZ+KUqy; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id EEB5F1E0DD; Sat, 17 Jan 2026 01:05:12 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,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 9B5201E08D for ; Sat, 17 Jan 2026 01:05:12 -0500 (EST) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 378AD4BA2E2B for ; Sat, 17 Jan 2026 06:05:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 378AD4BA2E2B Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=polymtl.ca header.i=@polymtl.ca header.a=rsa-sha256 header.s=oct2025 header.b=iEZ+KUqy Received: from smtp.polymtl.ca (smtp.polymtl.ca [132.207.4.11]) by sourceware.org (Postfix) with ESMTPS id 8677D4BA2E2E for ; Sat, 17 Jan 2026 06:03:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8677D4BA2E2E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=polymtl.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=polymtl.ca ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8677D4BA2E2E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=132.207.4.11 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1768629823; cv=none; b=XS+OjPQ/v3TsnBdZXnfq1Gj6KfQFfrSp7khoJydT3hTPsdUYVEvi/FVaWjypgvAcMWOKodXeYxsujSYT6byW3ig1IMD4bhwRbbDGxuQmdgpwM9D4GtgKHHCG8qkraG2qyFvDRlM9oNtNOc+iXxx7kpJB2yXeZ1FOLZobXEH4lWY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1768629823; c=relaxed/simple; bh=hVKwnnVBRKo8FgD7r4X23cuzrI4PJNUKJJcMaEDunhI=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=UGz5+Cli2PI4WNz2SxzLu6vEVRcfxwwdnnX4fYK8GgPwWgrZo4/gAFRdVTOFQS6RD/vZMkox8VPyMsfsfxHsWDfRgc5AnM7OmVObX/W33VRD+QJCC+hNxxVkTcITaqCZ1ge8BHWOVb6MQ0AblxDHpomIlHSbwJQFA2tCljIh67o= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8677D4BA2E2E Received: from simark.ca (simark.ca [158.69.221.121]) (authenticated bits=0) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 60H63aUw096115 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 17 Jan 2026 01:03:41 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 60H63aUw096115 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=polymtl.ca; s=oct2025; t=1768629821; bh=HZ6KvCX87I2WMHAEFkEKy3l5COnikZO+mkjsJIlWbPE=; h=From:To:Cc:Subject:Date:In-Reply-To:From; b=iEZ+KUqyvx5kJXdyJuHj733EOrr+5H9Hs+docF5eUHL5uMHmGQFesBB+o0Wi+sKzU 8mHju/8m/0Aql36WfB5GhjpmUSB09fOdzJYioA1/ypWMpzaTQin+BJMrxJuD4q07Ur TnNKNt88+mezFkU2Ctd3kK71Ge3N0tk14thkuuzmD0gxxoUUFnylt0G/C6Zx0ATXqu 2+6xTJ5+DIL93TEyaIDZC+Wo4Ujz5/C6391F05+jOI8nEU++bgpS/QiSWw3FTsI5oS jBjUzI89OcHP0isK4ydHRRZ4trzUz45hG2dHLZnrUMlcy3JzgwfDMy1yQ0VkXtVYL1 20SCU4BthWfOQ== Received: by simark.ca (Postfix) id A07A51E0DD; Sat, 17 Jan 2026 01:03:36 -0500 (EST) From: simon.marchi@polymtl.ca To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH 2/5] gdb/dwarf: move DWP htab nullptr check to lookup_dwo_unit_in_dwp Date: Sat, 17 Jan 2026 01:02:32 -0500 Message-ID: <20260117060335.691691-3-simon.marchi@polymtl.ca> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260117060335.691691-1-simon.marchi@polymtl.ca> References: <20260117060335.691691-1-simon.marchi@polymtl.ca> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Poly-FromMTA: (simark.ca [158.69.221.121]) at Sat, 17 Jan 2026 06:03:36 +0000 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 From: Simon Marchi cutu_reader::lookup_dwo_cutu gets hold of the right htab for the kind of unit to look up (CU or TU), but then just uses the pointer to know if it should call lookup_dwo_unit_in_dwp or not. lookup_dwo_unit_in_dwp then uses the same condition to obtain the correct htab. I think it would make more sense to return early from lookup_dwo_unit_in_dwp instead, if the required htab does not exist. Change-Id: I6f8f96aba2452f8261b3c60667e72fb21b97c89d --- gdb/dwarf2/read.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 331f1b9c5261..1b728764f711 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -6967,8 +6967,12 @@ lookup_dwo_unit_in_dwp (dwarf2_per_bfd *per_bfd, struct dwp_file *dwp_file, const char *comp_dir, ULONGEST signature, int is_debug_types) { - const struct dwp_hash_table *dwp_htab = - is_debug_types ? dwp_file->tus : dwp_file->cus; + const dwp_hash_table *dwp_htab + = is_debug_types ? dwp_file->tus : dwp_file->cus; + + if (dwp_htab == nullptr) + return nullptr; + bfd *dbfd = dwp_file->dbfd.get (); uint32_t mask = dwp_htab->nr_slots - 1; uint32_t hash = signature & mask; @@ -7522,25 +7526,19 @@ cutu_reader::lookup_dwo_cutu (dwarf2_cu *cu, const char *dwo_name, dwp_file *dwp_file = per_objfile->per_bfd->dwp_file.get (); - if (dwp_file != NULL) + if (dwp_file != nullptr) { - const struct dwp_hash_table *dwp_htab = - is_debug_types ? dwp_file->tus : dwp_file->cus; + dwo_unit *dwo_cutu + = lookup_dwo_unit_in_dwp (per_bfd, dwp_file, comp_dir, signature, + is_debug_types); - if (dwp_htab != NULL) + if (dwo_cutu != nullptr) { - struct dwo_unit *dwo_cutu = - lookup_dwo_unit_in_dwp (per_bfd, dwp_file, comp_dir, signature, - is_debug_types); + dwarf_read_debug_printf ("Virtual DWO %s %s found: @%s", + kind, hex_string (signature), + host_address_to_string (dwo_cutu)); - if (dwo_cutu != NULL) - { - dwarf_read_debug_printf ("Virtual DWO %s %s found: @%s", - kind, hex_string (signature), - host_address_to_string (dwo_cutu)); - - return dwo_cutu; - } + return dwo_cutu; } } else -- 2.52.0