From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-40137.protonmail.ch (mail-40137.protonmail.ch [185.70.40.137]) by sourceware.org (Postfix) with ESMTPS id 2AF2A38582B6 for ; Tue, 26 Mar 2024 10:05:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2AF2A38582B6 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=proton.me Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=proton.me ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2AF2A38582B6 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=185.70.40.137 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711447560; cv=none; b=kwqAy0dKVuJOoOpOfI+wmLKs7G5gd6YBmgg7r+LGrRvD6fLpXdnGCMhJo5fbsUM0sbbpHKkQjQG7YT41CRGkUj/lcULTSN8c3ltdZ2ayg9HkP95JkL2MJzcWosHdghvDAm3d9iO/jwzPo2FZyTic2Gt81hCGd0r2VwejXWU1AcQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711447560; c=relaxed/simple; bh=iAExWOv/cXi2OF/pt+w1dnP8k66X6iKY7eTQrz6Wr00=; h=DKIM-Signature:Date:To:From:Subject:Message-ID:MIME-Version; b=V0CMbaBLW4qAUQKLH9Dj7/Kyb7axfkxl1n70RyZlh966QMwiy/RCeArvuPbVc7DSSW/c4EoeMcIE6hx2l5DvoY8/aWewOCjUHkMC+jbj8kyLBqnECSgfQM2pOKicMxho5JFhLl0KWPOiWbtM0RnMnJfc0S/S6MjAZnbD5rHcUDs= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail; t=1711447555; x=1711706755; bh=iAExWOv/cXi2OF/pt+w1dnP8k66X6iKY7eTQrz6Wr00=; h=Date:To:From:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=WUuMDZgXOTjPAwjnDdj+gNM2sFK7BsER2VqLKCEtPQWgkk3L1HCWNaFO/JfMB5Co7 kHxKWheXuTjVhzMKuaKasTST+rdw+L56K1jHyK6xWLFhpju7CnlmFsL8D0wI8THlih OrWbkVaIFmgSw3BFEWECg50nqHZMVApu+by3Jqqh757UyLtrKskZAIAQbV4eVtRZUQ CzU84QOr/YzWaIa72hmU2WyY7wyQf/GCQNJH8jmQt32jZRRvgbDDwYHC0IPylftd3W e835o1/k9/GUcqXEiUFh6lG0wrKJNWLy8HURQ+9gpKPkvdF7+9ZDj5dNeDQJfwI7oR qeuH9IxTmywjA== Date: Tue, 26 Mar 2024 10:05:42 +0000 To: "gcc-patches@gcc.gnu.org" From: centurion Subject: Re: [PATCH] c++: fix alias CTAD [PR114377] Message-ID: <-jrvOmiBTSBZR28eXFlLLt33qB5qBKXYzf41qr4q5vmd2uckWiBAZ6-SXosFTT03ggXlUdHyN9hqSqx00pbVp3ybJdwlglROVseEZarnFrA=@proton.me> In-Reply-To: References: Feedback-ID: 105035476:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_INFOUSMEBIZ,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,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: The problem was is that in cp/pt.cc:find_template_parameter_info::found com= piler tried to get TEMPLATE_TEMPLATE_PARM tree from TEMPLATE_DECL tree by D= ECL_INITIAL instead of TREE_TYPE(like for TYPE_DECL). Therefore, parm got n= ullptr, because cp/pt.cc:process_template_parm doesn't assign anything to D= ECL_INITIAL for both TYPE_DECL and TEMPLATE_DECL. On Monday, March 25th, 2024 at 7:17 PM, centurion = wrote: > From b34312d82b236601c348382d30e625558f37d40c Mon Sep 17 00:00:00 2001 > From: centurion centurion009@proton.me >=20 > Date: Mon, 25 Mar 2024 01:57:21 +0400 > Subject: [PATCH] c++: fix alias CTAD [PR114377] >=20 > PR c++/114377 >=20 > gcc/cp/ChangeLog: >=20 > PR c++/114377 > * pt.cc (find_template_parameter_info::found): Use TREE_TYPE for > TEMPLATE_DECL instead of DECL_INITIAL. >=20 > gcc/testsuite/ChangeLog: >=20 > * g++.dg/cpp2a/class-deduction-alias19.C: New test. > --- > gcc/cp/pt.cc | 3 ++- > .../g++.dg/cpp2a/class-deduction-alias19.C | 15 +++++++++++++++ > 2 files changed, 17 insertions(+), 1 deletion(-) > create mode 100644 gcc/testsuite/g++.dg/cpp2a/class-deduction-alias19.C >=20 > diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc > index 8cf0d5b7a8d..d8a02f1cd7f 100644 > --- a/gcc/cp/pt.cc > +++ b/gcc/cp/pt.cc > @@ -11032,7 +11032,8 @@ find_template_parameter_info::found (tree parm) > { > if (TREE_CODE (parm) =3D=3D TREE_LIST) > parm =3D TREE_VALUE (parm); > - if (TREE_CODE (parm) =3D=3D TYPE_DECL) > + if (TREE_CODE (parm) =3D=3D TYPE_DECL > + || TREE_CODE(parm) =3D=3D TEMPLATE_DECL) > parm =3D TREE_TYPE (parm); > else > parm =3D DECL_INITIAL (parm); > diff --git a/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias19.C b/gcc/t= estsuite/g++.dg/cpp2a/class-deduction-alias19.C > new file mode 100644 > index 00000000000..1ea79bd7691 > --- /dev/null > +++ b/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias19.C > @@ -0,0 +1,15 @@ > +// PR c++/114377 > +// { dg-do compile { target c++20 } } > + > +template