From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com [IPv6:2607:f8b0:4864:20::f33]) by sourceware.org (Postfix) with ESMTPS id C3DEB38515FB for ; Thu, 20 Oct 2022 14:51:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C3DEB38515FB Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=acm.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-qv1-xf33.google.com with SMTP id j8so2274843qvo.6 for ; Thu, 20 Oct 2022 07:51:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=SZB+gf9Xpnlr56RywOCZ995In5NzOYMVVXEnMg83x+0=; b=XjnVXDgT2jqeFHfZ1R1NH9RQXe6vRowoE22P/3Jo5qD9Wi8yLK75f+1mF3wPmeRRD8 buz3lMyn2Cje2iR1NcnRVnbnohibk4q4yhQi5k9MbzfCHhFRS5ykexQYq9eIALkXdZh6 sOMF3ykGfCqmqvWR2jwOsKvEwJPDjrDC5bRoAoU+34eMsLyOyxyuybSWnf4ng+QSHDXm oWxmP4OkLopHxWaBmCE0bQYPQNYQ3NETvpeWF2fE/DXl02fEoKwxp3FXWPLghC/lxaG/ ZUz1Mmy5XXEB7DjCmYO8GSFVenkcKzm151ZivESTRvtYun+/cYEtbmWZUdMDAF+xeQir /J0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=SZB+gf9Xpnlr56RywOCZ995In5NzOYMVVXEnMg83x+0=; b=wCNEJe1LQsw+evtV+r5seT42o28iutd6oGDyoQ9q1QHk7v8KGeQ/TpypqV5PErVd2C DeQUSuLm28RBNuuprbI0oIIvh3xa7kOmMTdTpTVd4ZV3x/barGB/P4tRUIqpfre4ujSn Y/5li9Dz4S0gpcK4UA385t1BtCAMPnYtA+DXX1opXT59zZGEQrNvtQPLMtRODVPREtQ/ nM8k6ZsDeNIwesDMkbcl1NLsa5VGPA2upHR/n7L4U+PaJgzz8UBeqyaUku2YY4SIRd1i 9OmvCOC+bsIKkpI8rmQr4lTcLyqhy9FcKC7VPrxUFGf/QOBJXpWDP6hDzJ2Y5i092RzR fK3g== X-Gm-Message-State: ACrzQf2siAPPgfAONERkuN19YdRGJC5ygmLprTc7jU3XwQ3ThKLxbAuR u5z6WOGR0X4L2HXYiOdDUHk= X-Google-Smtp-Source: AMsMyM7BbtIZTG+aygrFwJlqX3pISbwE/dNZB3WE848BqZO12oe1QDfcXrVwM1HOAOufm5CdecEGmA== X-Received: by 2002:a0c:b447:0:b0:4b3:cf2b:92f6 with SMTP id e7-20020a0cb447000000b004b3cf2b92f6mr11703605qvf.79.1666277472973; Thu, 20 Oct 2022 07:51:12 -0700 (PDT) Received: from ?IPV6:2601:19c:527f:bfd0::5? ([2601:19c:527f:bfd0::5]) by smtp.googlemail.com with ESMTPSA id l13-20020ac84a8d000000b00342f8d4d0basm6228185qtq.43.2022.10.20.07.51.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 20 Oct 2022 07:51:12 -0700 (PDT) Sender: Nathan Sidwell Message-ID: Date: Thu, 20 Oct 2022 10:51:11 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Subject: Re: [PATCH] c++ modules: handle CONCEPT_DECL in node_template_info [PR102963] Content-Language: en-US To: Patrick Palka , gcc-patches@gcc.gnu.org Cc: jason@redhat.com References: <20221020140740.415427-1-ppalka@redhat.com> From: Nathan Sidwell In-Reply-To: <20221020140740.415427-1-ppalka@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3038.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,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP 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 10/20/22 10:07, Patrick Palka wrote: > Here node_template_info is overlooking that CONCEPT_DECL has TEMPLATE_INFO > too, which makes get_originating_module_decl for the CONCEPT_DECL fail to > return the corresponding TEMPLATE_DECL, which leads to an ICE from > import_entity_index while pretty printing the CONCEPT_DECL's module > suffix as part of the failed static assert diagnostic. ok > > Tested on x86_64-pc-linux-gnu, does this look OK for trunk? > > PR c++/102963 > > gcc/cp/ChangeLog: > > * module.cc (node_template_info): Handle CONCEPT_DECL. > > gcc/testsuite/ChangeLog: > > * g++.dg/modules/concept-7_a.C: New test. > * g++.dg/modules/concept-7_b.C: New test. > --- > gcc/cp/module.cc | 3 ++- > gcc/testsuite/g++.dg/modules/concept-7_a.C | 7 +++++++ > gcc/testsuite/g++.dg/modules/concept-7_b.C | 7 +++++++ > 3 files changed, 16 insertions(+), 1 deletion(-) > create mode 100644 gcc/testsuite/g++.dg/modules/concept-7_a.C > create mode 100644 gcc/testsuite/g++.dg/modules/concept-7_b.C > > diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc > index bb406a5cf01..dfed0a5ef89 100644 > --- a/gcc/cp/module.cc > +++ b/gcc/cp/module.cc > @@ -4046,7 +4046,8 @@ node_template_info (tree decl, int &use) > || TREE_CODE (decl) == TYPE_DECL > || TREE_CODE (decl) == FUNCTION_DECL > || TREE_CODE (decl) == FIELD_DECL > - || TREE_CODE (decl) == TEMPLATE_DECL)) > + || TREE_CODE (decl) == TEMPLATE_DECL > + || TREE_CODE (decl) == CONCEPT_DECL)) > { > use_tpl = DECL_USE_TEMPLATE (decl); > ti = DECL_TEMPLATE_INFO (decl); > diff --git a/gcc/testsuite/g++.dg/modules/concept-7_a.C b/gcc/testsuite/g++.dg/modules/concept-7_a.C > new file mode 100644 > index 00000000000..a39b31bf7f0 > --- /dev/null > +++ b/gcc/testsuite/g++.dg/modules/concept-7_a.C > @@ -0,0 +1,7 @@ > +// PR c++/102963 > +// { dg-additional-options "-fmodules-ts -fconcepts" } > +// { dg-module-cmi pr102963 } > + > +export module pr102963; > + > +export template concept C = __is_same(T, int); > diff --git a/gcc/testsuite/g++.dg/modules/concept-7_b.C b/gcc/testsuite/g++.dg/modules/concept-7_b.C > new file mode 100644 > index 00000000000..1f81208ebd5 > --- /dev/null > +++ b/gcc/testsuite/g++.dg/modules/concept-7_b.C > @@ -0,0 +1,7 @@ > +// PR c++/102963 > +// { dg-additional-options "-fmodules-ts -fconcepts" } > + > +import pr102963; > + > +static_assert(C); > +static_assert(C); // { dg-error "static assert" } -- Nathan Sidwell