From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 7lOvJuKNtWpCmT4AWB0awg (envelope-from ) for ; Thu, 24 Sep 2026 16:53:54 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=arSXPJdf; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 84C8E1E01F; Thu, 24 Sep 2026 16:53:54 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::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 D59E51E01F for ; Thu, 24 Sep 2026 16:53:53 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7E5EB4BB58CA for ; Thu, 24 Sep 2026 20:53:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7E5EB4BB58CA Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=arSXPJdf Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTP id 1A6C54BA540B for ; Thu, 24 Sep 2026 20:53:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1A6C54BA540B Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1A6C54BA540B Authentication-Results: sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1790283209; cv=none; b=tfZz0HzLvG9dYNubtUAeT5ReqcA4lXgKfdAEUUwdpEH4M4/o4gHGth6hEI5ZTa2DmCUpXHV5posxOEiZMaS/5RxjC5LJE4m5kQ7AA4T5FtI6yMOTOW9m/XlVojTrAUfv9TjjMWY7jQTrzKQJ0oht3dEnu/smBZQWB1g95Ff4Lp8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1790283209; c=relaxed/simple; bh=PxFwyCBe8pgxnkmmqP3YnIUOa1P4QUw0Hlw+ZMjQqZ4=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=d85LpQgpVakyv9a0BKOmHcYTFpcNAemPVieYK1VuWYtSq2vbHERSF4Jw7nZWsofCs3Um//o2ch24skt+MvLM6bSVLrxOoXoMP/5Q1yxQCxO5khc/1Ku/YJFzE2RzD884hUZVE2ViStmXn1JxPUP7wUm88NWlAA4lTan1FGSDafw= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=arSXPJdf DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1A6C54BA540B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1790283208; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=MFJNWOml7UhFJ1f2hRDsjUZRucH+mhANEtWh1VqVea8=; b=arSXPJdfkxlaM+obcNEuXTbHtY7BNBGedbGtf77lP5VRnc9x4bzxGkj1d703jKsBrovWTX jOFtyqKYa3mj8/ocEsFKNx79l2pHNX6hIoN43m/uSpk9FxRnhDZCr3ikhO9lBYkwuNqabG HBWPGlW+jVgjZzwmHBePJ7ShHgBTEFk= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-595-AVmSojaSOnaEFXP3oN_HPw-1; Thu, 24 Sep 2026 16:53:27 -0400 X-MC-Unique: AVmSojaSOnaEFXP3oN_HPw-1 X-Mimecast-MFC-AGG-ID: AVmSojaSOnaEFXP3oN_HPw_1790283206 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-49e6683d48fso2327115e9.0 for ; Thu, 24 Sep 2026 13:53:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790283206; x=1790888006; h=content-type:mime-version:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to:content-type; bh=MFJNWOml7UhFJ1f2hRDsjUZRucH+mhANEtWh1VqVea8=; b=GptrEFUHHYXrr5Sy1RusTdJFpGckgI7IUJWyVxQzHofMznH6RIm23ZyIOCJkByhsVL Ko7DsEdtX2wyoqKOosf3wCjiC3Q/6pwCn0zGJ/fRCiCD/58L6m1o27Qs5B2dVhr9B9NK 8/UOtj9YBqSFW0YjhFhH73mhD3H8dDNvQJBAb/HBVDgQeCo6Cm8oHPPmhk81CASYOaVs p6ThEnGFkjV+Dlm3K6/gyE4Etsy9JWP7foCDQH5E+lDRsVfLEURvtik6mksdPTgzAMk9 Gk8k4yyYa365AKDyyC+7Z6TiTE3QkfKO89uippe8P38K/600oKODCaGyhz8JCm0pWn7t HPEw== X-Forwarded-Encrypted: i=1; AKwUvBysOBjkytY1ZTu1LQG8OodeprxT7SmTMDsz2RNh3QjuxRMw0ApEx0xMxgpDN3F/rEsjnP4AvGt9HaDY7w==@sourceware.org X-Gm-Message-State: AFuF++k+37TDA645bWvduKAJ+7nh5j0jywizaegOlDl93LgKC8swhvvh tdIq3+quSr4iXxIzzug/++ywgk8dgF9GXTlsQvxM1cUovH8cG/YaWRKYvePtsoo2eeLvcdBhvIa AaSlM2k2Str2W6ENPvjEnAA7HWAwuT8hhB10C5HNnKfcwwqvdy0ruby5/nR3StdLFQf6O6Kw= X-Gm-Gg: AYBFou0I+07HaH6pjNIMSGfpvEKSJCjDYADUgBVMcKnDlDSt9fAv4yO2t4SGpCX1gST Y/HITotoaYyDtEpV0C7N/BNXj7FfS2uPEC+wPoP2pn6v+gvz+VFNjFpST1PE3eU4bGKN4Nzvsrn hcYC1EcLPZACtBXNSBUZFMwx2Mu8vBrof3Vuj+M8Xfqv2R3Yx7d1U4kwHJ424U8b0PHUAXTVVbe 55YCSDwzQgpmEpjTIOLuyWaLEljNnaoumjxe/2NSf7yajlVPcG5f8LZumd9lrFYzyTtVugv+UAw X9YrhUtKrKb+HFV4mC7sJVwDFYgJqjJP8lysLN35AYiF2+SUH9ere8NDHxe7cGFMi02z X-Received: by 2002:a05:600c:638f:b0:49c:ffab:551f with SMTP id 5b1f17b1804b1-49fe66d8112mr59310735e9.22.1790283206120; Thu, 24 Sep 2026 13:53:26 -0700 (PDT) X-Received: by 2002:a05:600c:638f:b0:49c:ffab:551f with SMTP id 5b1f17b1804b1-49fe66d8112mr59310585e9.22.1790283205699; Thu, 24 Sep 2026 13:53:25 -0700 (PDT) Received: from localhost ([213.31.44.29]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4887a84221bsm1591170f8f.36.2026.09.24.13.53.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Sep 2026 13:53:25 -0700 (PDT) From: Andrew Burgess To: Simon Marchi , gdb-patches@sourceware.org Cc: Simon Marchi Subject: Re: [PATCH v6 3/3] gdb/dwarf: add cooked_index_entry::parent_is_deferred In-Reply-To: <20260924151048.204777-4-simon.marchi@efficios.com> References: <20260924050002.1539783-1-simon.marchi@efficios.com> <20260924151048.204777-1-simon.marchi@efficios.com> <20260924151048.204777-4-simon.marchi@efficios.com> Date: Thu, 24 Sep 2026 21:53:23 +0100 Message-ID: <87v77u1id8.fsf@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: pXLEfNNBYIDoPxFbQz7KhPFXIWtZ7ncOrwtEK9VREng_1790283206 X-Mimecast-Originator: redhat.com Content-Type: text/plain 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 looks good to me. But because I have to find something to earn my pay... Simon Marchi writes: > Add a parent_is_deferred method to cooked_index_entry, mirroring > name_is_deferred, and use it instead of checkingthe IS_PARENT_DEFERRED ... missing space in 'checkingthe'. But otherwise, LGTM: Approved-By: Andrew Burgess thanks, Andrew > flag directly. > > Change-Id: Id684b30ec8aa81ac554e5c3edb8f7197c7238469 > --- > gdb/dwarf2/cooked-index-entry.h | 12 ++++++++---- > gdb/dwarf2/cooked-index-shard.c | 10 +++++----- > gdb/dwarf2/cooked-index.c | 2 +- > 3 files changed, 14 insertions(+), 10 deletions(-) > > diff --git a/gdb/dwarf2/cooked-index-entry.h b/gdb/dwarf2/cooked-index-entry.h > index 2637b8255258..462ec0640a9b 100644 > --- a/gdb/dwarf2/cooked-index-entry.h > +++ b/gdb/dwarf2/cooked-index-entry.h > @@ -224,17 +224,21 @@ struct cooked_index_entry : public allocate_on_obstack > return compare (canonical, other.canonical, SORT) < 0; > } > > + /* Return true if this entry's parent still has to be resolved. */ > + bool parent_is_deferred () const > + { return (flags & IS_PARENT_DEFERRED) != 0; } > + > /* Set parent entry to PARENT. */ > void set_parent (const cooked_index_entry *parent) > { > - gdb_assert ((flags & IS_PARENT_DEFERRED) == 0); > + gdb_assert (!parent_is_deferred ()); > m_parent_entry.resolved = parent; > } > > /* Resolve deferred parent entry to PARENT. */ > void resolve_parent (const cooked_index_entry *parent) > { > - gdb_assert ((flags & IS_PARENT_DEFERRED) != 0); > + gdb_assert (parent_is_deferred ()); > flags = flags & ~IS_PARENT_DEFERRED; > m_parent_entry.resolved = parent; > } > @@ -242,14 +246,14 @@ struct cooked_index_entry : public allocate_on_obstack > /* Return parent entry. */ > const cooked_index_entry *get_parent () const > { > - gdb_assert ((flags & IS_PARENT_DEFERRED) == 0); > + gdb_assert (!parent_is_deferred ()); > return m_parent_entry.resolved; > } > > /* Return deferred parent entry. */ > parent_map::addr_type get_deferred_parent () const > { > - gdb_assert ((flags & IS_PARENT_DEFERRED) != 0); > + gdb_assert (parent_is_deferred ()); > return m_parent_entry.deferred; > } > > diff --git a/gdb/dwarf2/cooked-index-shard.c b/gdb/dwarf2/cooked-index-shard.c > index af8c3e9527ac..206fe4483a40 100644 > --- a/gdb/dwarf2/cooked-index-shard.c > +++ b/gdb/dwarf2/cooked-index-shard.c > @@ -85,7 +85,7 @@ cooked_index_shard::add (sect_offset die_offset, enum dwarf_tag tag, > parent_entry, per_cu); > m_entries.push_back (result); > > - if ((flags & IS_PARENT_DEFERRED) != 0) > + if (result->parent_is_deferred ()) > m_have_deferred_parents = true; > > if (result->name_is_deferred ()) > @@ -109,8 +109,8 @@ cooked_index_shard::add (sect_offset die_offset, enum dwarf_tag tag, > by language_may_use_plain_main as well), but it's handy as a spot > to document. */ > else if (lang != language_unknown > - && (flags & IS_PARENT_DEFERRED) == 0 > - && parent_entry.resolved == nullptr > + && !result->parent_is_deferred () > + && result->get_parent () == nullptr > && m_main == nullptr > && language_may_use_plain_main (lang) > && !result->name_is_deferred () > @@ -238,7 +238,7 @@ cooked_index_shard::resolve_deferred_parents > gdb_assert (m_have_deferred_parents); > > for (cooked_index_entry *entry : m_entries) > - if ((entry->flags & IS_PARENT_DEFERRED) != 0) > + if (entry->parent_is_deferred ()) > { > const cooked_index_entry *new_parent > = parent_maps->find (entry->get_deferred_parent ()); > @@ -308,7 +308,7 @@ cooked_index_shard::canonicalize_names () > for (cooked_index_entry *entry : m_entries) > { > /* Deferred parents should not reach this point. */ > - gdb_assert ((entry->flags & IS_PARENT_DEFERRED) == 0); > + gdb_assert (!entry->parent_is_deferred ()); > > /* Entries without a name are filtered out during the call to > prune_nameless_entries. */ > diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c > index 96996ebc4603..89a93eff6998 100644 > --- a/gdb/dwarf2/cooked-index.c > +++ b/gdb/dwarf2/cooked-index.c > @@ -391,7 +391,7 @@ cooked_index::dump (gdbarch *arch) > gdb_printf (" DIE offset: %s\n", sect_offset_str (entry->die_offset)); > gdb_printf (" CU index: %u\n", entry->per_cu->index); > > - if ((entry->flags & IS_PARENT_DEFERRED) != 0) > + if (entry->parent_is_deferred ()) > gdb_printf (" parent: deferred (%" PRIx64 ")\n", > entry->get_deferred_parent ()); > else if (entry->get_parent () != nullptr) > -- > 2.55.0