From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qv1-xf36.google.com (mail-qv1-xf36.google.com [IPv6:2607:f8b0:4864:20::f36]) by sourceware.org (Postfix) with ESMTPS id E997E385AE5F for ; Sat, 16 Dec 2023 23:19:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E997E385AE5F Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=acm.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E997E385AE5F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::f36 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702768747; cv=none; b=xaOMoLZG+q7pS0RJ4pkCZTg0AdMB/mE8undXyaT5pHH6oUJeUkvpCLcGAMWLyf9JsTvHQtZXnFVhOyX+2GkD38eAXtpvva6KIc8NIWkDiFHpRMDPZtuNuiz2vBp4CucQVVFbIhTanPZH4RlfESMfDvGu+LdkMyX/uN8WYnmzST0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702768747; c=relaxed/simple; bh=e1Z0vgIIQD7T2Ic9GwwzftyPJaumckL5FPTvF34y6Dw=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=w0XOGNFFeA0YI6oijqSx2lm/zFax6xd8wlaU/y9yDVyzRk+BmdKRHP46QiFwJ+Ls4g80pcWzSZyt8E/ALYNXNH37b6cyvu1MpyCg1rh+rg7p55gE/HbWWTTWzZVtQ5bxm3+tw8AyO7VXAdoey/wEKU/DITj5f/Rfyc3tqdSEsqY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-qv1-xf36.google.com with SMTP id 6a1803df08f44-67aa9a99915so15911766d6.3 for ; Sat, 16 Dec 2023 15:19:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702768745; x=1703373545; darn=gcc.gnu.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=z+GeR0+MI+4qNa4FIC2P3WEJ46Hc9lzWr5mnQSduE5k=; b=HeW7J6XMjdaNC1y2CSydw4EuBDWSkevmQ4GCoauQr46K8i0qhmq0A7LZyh0fdfc6Xa xAvNw/sx0HKcXzIxkoeEdDstpYbcEqRvlEYTfEhlPVQL8tvjcHwKqXX22AhpZc0R6Ypq dVt79V80yw3qTQ8eIMFRuh7gOMNBJRd/unPAzCiIz1zEEh2QwV+hqTNnD8h7jCnWdYN2 /XcoDUoJG+YjBusD9hngnMzONtsq8VFEuiUFasRJEUpOnFWwoqsgTRLUL9KeaFEF1gH3 oVuDJm8J4F5h2jZxZRlX09Z+DIfIJkO6fOFGaLO3h39RtCflGlntQnzYxHSQUlt88IYD krbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702768745; x=1703373545; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=z+GeR0+MI+4qNa4FIC2P3WEJ46Hc9lzWr5mnQSduE5k=; b=Blrye/0FhPP4aTIxjtyXeN+6mqSrsI1mPk7Qb0ifbp2stODuGItzbgSh24Rg4WoPqe np8y9YbyOAT4lXHFqU42NGZzd2zXSGfO9pCGafI6+0tF9L8n4IbwqC1PvHBC2gwSrjO3 gk0g38JRm2foV8Y07T2MESP0bhdXJnwnDmD1UggfMzhtvf6R7jo/IhJk1WRr4HJlvu72 5jletGHTgY2XfvK95awSlZGV5LEwS8WID5Ln8I4J3UT5sGj2Llwi6iuiNHf508QXGpZT 5cxbEBfN3xdAebZ7BwYg6clbb4BB/ppu+DbGwOGgtKEGM1dTa//z46JMNrAYWR/5EkAj 0xWQ== X-Gm-Message-State: AOJu0YxICku4bUmtp3YeLlvtsjdoywjIOeV42qNna7livgmgT+oY7Xj5 XDT+Hhr7OfKN3YmhEHjUFo8= X-Google-Smtp-Source: AGHT+IHaGCc2spgLeM3BNljT9eQKO/M8b8XCou+GwCIKDjvrEUW2cX2LCj4vd6/Qs1e+YAl3S+9oUg== X-Received: by 2002:ad4:5dc8:0:b0:67a:a721:d77c with SMTP id m8-20020ad45dc8000000b0067aa721d77cmr18950970qvh.98.1702768745189; Sat, 16 Dec 2023 15:19:05 -0800 (PST) Received: from ?IPV6:2601:19c:5282:9160::1? ([2601:19c:5282:9160::1]) by smtp.googlemail.com with ESMTPSA id c17-20020a0cfb11000000b0067f24d6a18fsm1153495qvp.15.2023.12.16.15.19.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 16 Dec 2023 15:19:04 -0800 (PST) Sender: Nathan Sidwell Message-ID: <373a22b0-3849-41a5-a89c-2fbbeef3adb3@acm.org> Date: Sat, 16 Dec 2023 18:19:03 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] c++/modules: seed namespaces for bindings [PR106363] To: Nathaniel Shead , gcc-patches@gcc.gnu.org Cc: Jason Merrill References: <6550318c.170a0220.caf0c.3fe5@mx.google.com> <657d7c6a.050a0220.5ef1f.0938@mx.google.com> Content-Language: en-US From: Nathan Sidwell In-Reply-To: <657d7c6a.050a0220.5ef1f.0938@mx.google.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3036.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,URIBL_BLACK 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: On 12/16/23 05:31, Nathaniel Shead wrote: > Ping for https://gcc.gnu.org/pipermail/gcc-patches/2023-November/636159.html ok > > On Sun, Nov 12, 2023 at 12:59:36PM +1100, Nathaniel Shead wrote: >> Bootstrapped and regtested on x86_64-pc-linux-gnu. I don't have write >> access. >> >> -- >8 -- >> >> Currently the first depset for an EK_BINDING is not seeded. This breaks >> the attached testcase as then the namespace is not considered referenced >> yet during streaming, but we've already finished importing. >> >> There doesn't seem to be any particular reason I could find for skipping >> the first depset for bindings, and removing the condition doesn't appear >> to cause any test failures, so this patch removes that check. >> >> PR c++/106363 >> >> gcc/cp/ChangeLog: >> >> * module.cc (module_state::write_cluster): Don't skip first >> depset for bindings. >> >> gcc/testsuite/ChangeLog: >> >> * g++.dg/modules/pr106363_a.C: New test. >> * g++.dg/modules/pr106363_b.C: New test. >> >> Signed-off-by: Nathaniel Shead >> --- >> gcc/cp/module.cc | 4 +--- >> gcc/testsuite/g++.dg/modules/pr106363_a.C | 9 +++++++++ >> gcc/testsuite/g++.dg/modules/pr106363_b.C | 10 ++++++++++ >> 3 files changed, 20 insertions(+), 3 deletions(-) >> create mode 100644 gcc/testsuite/g++.dg/modules/pr106363_a.C >> create mode 100644 gcc/testsuite/g++.dg/modules/pr106363_b.C >> >> diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc >> index c1c8c226bc1..411a3b9411c 100644 >> --- a/gcc/cp/module.cc >> +++ b/gcc/cp/module.cc >> @@ -14741,9 +14741,7 @@ module_state::write_cluster (elf_out *to, depset *scc[], unsigned size, >> for (unsigned ix = 0; ix != size; ix++) >> { >> depset *b = scc[ix]; >> - for (unsigned jx = (b->get_entity_kind () == depset::EK_BINDING >> - || b->is_special ()) ? 1 : 0; >> - jx != b->deps.length (); jx++) >> + for (unsigned jx = b->is_special (); jx != b->deps.length (); jx++) >> { >> depset *dep = b->deps[jx]; >> >> diff --git a/gcc/testsuite/g++.dg/modules/pr106363_a.C b/gcc/testsuite/g++.dg/modules/pr106363_a.C >> new file mode 100644 >> index 00000000000..c18d2eef1c8 >> --- /dev/null >> +++ b/gcc/testsuite/g++.dg/modules/pr106363_a.C >> @@ -0,0 +1,9 @@ >> +// PR c++/106363 >> +// { dg-additional-options "-fmodules-ts" } >> +// { dg-module-cmi pr106363.a } >> + >> +export module pr106363.a; >> + >> +namespace ns { >> + export int x; >> +} >> diff --git a/gcc/testsuite/g++.dg/modules/pr106363_b.C b/gcc/testsuite/g++.dg/modules/pr106363_b.C >> new file mode 100644 >> index 00000000000..0508c0d6193 >> --- /dev/null >> +++ b/gcc/testsuite/g++.dg/modules/pr106363_b.C >> @@ -0,0 +1,10 @@ >> +// PR c++/106363 >> +// { dg-additional-options "-fmodules-ts" } >> +// { dg-module-cmi pr106363.b } >> + >> +export module pr106363.b; >> +import pr106363.a; >> + >> +namespace ns { >> + export using ns::x; >> +} >> -- >> 2.42.0 >> -- Nathan Sidwell