From patchwork Mon Jan 13 20:27:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Palka X-Patchwork-Id: 104708 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 783853857BB3 for ; Mon, 13 Jan 2025 20:29:25 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 783853857BB3 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=Dejuu8qB X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id AD6EE3858405 for ; Mon, 13 Jan 2025 20:27:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AD6EE3858405 Authentication-Results: sourceware.org; dmarc=pass (p=none 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 AD6EE3858405 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736800062; cv=none; b=MHPr2yQKyhgvBjJN6DPc6oZIJOmPwpT8r6uv5joyh7t2iYo8QMe5pxaaGQzGvpnxL0glOscmnrSnBqAtTK/LpFKU6LvPcTrhhR4Ho0+3T/RGr7un730AnN6MCHL0zDMkREG2aOVq8+txzHWcinBIkp/GRwq5gqiXHBxxdNTm1TI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736800062; c=relaxed/simple; bh=25Irooq1ri5gcZMBAZw7iXZcEb/Zlir1BZ4JSNZINIw=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=hcOBz1cZaD48LdNZhrMDBIy0OwmnFt63cWCnEoHCeoC39zhgG5EGd6HU9bikNPm7n1Jj2zQmQmrbHLz0Oh497FCiQf5aZnziw4YJ90SPUUmDgEbLKcg3VolChacP6Z7pwhD5/eKFZ97ymwZH/EACK0YAHI//frlxB3kaofR35T8= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AD6EE3858405 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1736800061; 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: content-transfer-encoding:content-transfer-encoding; bh=t/faIjB/atzFtmHYmqU2udXJwgplFDFSMB1VO8gO/J0=; b=Dejuu8qBnfooa2BQqgcatmRgb3QEby3O3cSjIvENq/F6CHMLa+BkPSQhdM2f/ahxo9oYfq PVpXOAz+7OCGEq91BYs1jE0bkGIa0YxY3QSGMyk76UYdawik7yFqrQZNMgS0tB2bsHunwY O5sOmGziqGlQjKqGfaCComySh9g+XW0= Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-576-ndFkIPzkPeGrKUc37uxOZQ-1; Mon, 13 Jan 2025 15:27:40 -0500 X-MC-Unique: ndFkIPzkPeGrKUc37uxOZQ-1 X-Mimecast-MFC-AGG-ID: ndFkIPzkPeGrKUc37uxOZQ Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7b70df784cdso78145785a.2 for ; Mon, 13 Jan 2025 12:27:40 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736800060; x=1737404860; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=t/faIjB/atzFtmHYmqU2udXJwgplFDFSMB1VO8gO/J0=; b=f8jKXya7xLIS9dh6PV7+3+O9xfkgcJUalbUe05qOihi1ORITKks5Z1Qzf5mzI0gRpG oYH2aDEtmYgIrof/jewXZZrq0v3oct7suGzqi5PPwqmyzBpYEoCxqoPR2Ty1Q4ynCEN3 UV6k6/wHar1ZdXO/AldAJEHiD4zWBZbiEBHUY7JDFJiwNSnlh8EFG61viD72aZiuGlI2 3UGN7FoNj0SWkeQXnJNjzfrIvzA/sWZuex3zAsymvIzliQiu8TEkpd3HsmMW6uxda6gE pS8QKLKT4pm6nZLgwMF0m5OPOfCA7DgFshUGTyRu3e4RgkFx3h1R+rh/0Tp/HIeLYS/t L8ig== X-Gm-Message-State: AOJu0YzpXfGA50YQcWhhyESZEqdxmZjHdTYvYuQw6dFamVdHFdfn+Bvq fJdOUup08TEh90FgDS1fjju88t8VD91/SSr2+IXOnTU+2HJy0dOrnSDgU8Xj97eO6ryEdEuDXrk yvIbIjiKZT5CtOTCDfRmsYP26qWhBLu4KAPSnNNVr0VQvTAXMFWizkWyd43Db0KcUeOXvOojRPm 8hYhAlhfU/7h3sW4LIsEXxoZ1AEVWXoDxf9HDj X-Gm-Gg: ASbGncsyWZLhr6PUtl9VU5Dame0fGmNVyeWzLFuGoTIN0njzH9ofaO6uyoJPjytXoh7 CMhok2n8XDMUz7AzGFr+UI9S/a+/X3soTtQ4Z/pX3eTbYnU63D1M7ipuNfGJpUK3xlOBxjxbAtG bHsuHGHcga8bnpAbwoNqJmwVs7W52KKhtgStKQYFp9me+N52VvTF7BBgVybc+zYMTdkiNXzUU2B TWEkiqNzD8MEl5Cc4R6FjOkoM6/8T4KclXQS4Kd9DkQIcKthsNdA55mtjqmAAK1xiW7chlJQZhE V2YRN7xgk6g4f+2/l9+P X-Received: by 2002:a05:620a:2699:b0:7b6:cf60:396e with SMTP id af79cd13be357-7bcd97acc90mr1116081785a.12.1736800059866; Mon, 13 Jan 2025 12:27:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IEXY3fbtYM9Y9pJOhtKS7khw1gT+0Hzct1rHT1xLd6KNDf3hH+YNTad9fdobARhv4NEa696yA== X-Received: by 2002:a05:620a:2699:b0:7b6:cf60:396e with SMTP id af79cd13be357-7bcd97acc90mr1116080285a.12.1736800059455; Mon, 13 Jan 2025 12:27:39 -0800 (PST) Received: from localhost.localdomain (ool-18bb2a2e.dyn.optonline.net. [24.187.42.46]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7bce323967fsm529499985a.19.2025.01.13.12.27.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2025 12:27:38 -0800 (PST) From: Patrick Palka To: gcc-patches@gcc.gnu.org Cc: jason@redhat.com, Patrick Palka Subject: [PATCH] c++: pack expansion arg vs non-pack parm checking ICE [PR118454] Date: Mon, 13 Jan 2025 15:27:36 -0500 Message-ID: <20250113202736.1853494-1-ppalka@redhat.com> X-Mailer: git-send-email 2.48.0.rc1.35.g1b4e9a5f8b MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: bxvBMiIuVr7l1DzZKC4ljvVIekqL2EHJ3GK1ecyurSw_1736800060 X-Mimecast-Originator: redhat.com content-type: text/plain; charset="US-ASCII"; x-default=true X-Spam-Status: No, score=-14.4 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org Bootstrapped and regtested on x86_64-pc-linux-gnu, does this look OK for trunk? -- >8 -- During ahead of time template argument coercion, we handle the case of passing a pack expansion to a non-pack parameter by breaking out early and using the original unconverted arguments, deferring coercion until instantiation time where we have concrete arguments. We still however need to strip typedefs from the original arguments as in the ordinary case, for sake of our template argument hashing/equivalence routines which assume template arguments went through strip_typedefs. PR c++/118454 gcc/cp/ChangeLog: * pt.cc (coerce_template_parms): Strip typedefs in the pack expansion arg vs non-pack parm early break special case. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/variadic187.C: New test. --- gcc/cp/pt.cc | 2 +- gcc/testsuite/g++.dg/cpp0x/variadic187.C | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/cpp0x/variadic187.C diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc index 537e4c4a494..8cdbf7f65ac 100644 --- a/gcc/cp/pt.cc +++ b/gcc/cp/pt.cc @@ -9362,7 +9362,7 @@ coerce_template_parms (tree parms, /* We don't know how many args we have yet, just use the unconverted (but unpacked) ones for now. */ ggc_free (new_inner_args); - new_inner_args = inner_args; + new_inner_args = strip_typedefs (inner_args); arg_idx = nargs; break; } diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic187.C b/gcc/testsuite/g++.dg/cpp0x/variadic187.C new file mode 100644 index 00000000000..af1770e4d89 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/variadic187.C @@ -0,0 +1,13 @@ +// PR c++/118454 +// { dg-do compile { target c++11 } } +// { dg-additional-options --param=hash-table-verification-limit=1000 } + +template using identity = T; + +template struct dual; + +template +using ty1 = dual, Ts...>; + +template +using ty2 = dual;