From patchwork Wed Nov 22 17:26:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Palka X-Patchwork-Id: 1867448 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Rwd1GFf1; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Sb7Zb4612z1yRq for ; Thu, 23 Nov 2023 04:31:17 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7AC6338618D3 for ; Wed, 22 Nov 2023 17:30:40 +0000 (GMT) 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 ESMTPS id D001F3858298 for ; Wed, 22 Nov 2023 17:30:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D001F3858298 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 D001F3858298 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=1700674228; cv=none; b=KFU8sm60VHDpJuv0xDhbB+5fwChzIDQJRXVPSYqTYpzfd2Cq7oqs3yhES0jUJBkgCgZp95B1X0Rp5ot+i64j1LHqnJ5atDkhrrT9JyISpf7Lim1q7kH/FgkYL24ZmMpow2fYmgeNx7+LRvklbF9gkZisuJHZAqTsWBPmdX0J6dc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700674228; c=relaxed/simple; bh=dYPlSxlqwlRXq7wZnaqlbrG+3x/Ao+bRiAE3Sdw64uQ=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=q5dc8oQ6uLkD9SgFwD/pUc616P1FdijJ3WLgrFQBccU6y0ScAgyrdLH7SA7grBw0d7ECADXKceYZhYvwz33J713iXHxlLoehghz1S6Q/EcKImExHsnQsEvNzSa7sd/DOmAmtY2pzK/vFO91b8iOayTx4HR/qgxFJQ111yS5tWZU= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1700674217; 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=yxtG9bNvfekcQizIY3gX6HS04qB/CJqNeWWIO4/98Eg=; b=Rwd1GFf1Z/XI6sFEkbcNj4g9ul19kgfYp5fgS9HX6kYvq6pP3KdAb1IYUqGX5iw/ZOsE+R FtdFgTAdpyGYypFNKlO9dp8ceeeK1wvVxcELOrpdpv+kFYEODCZW67w0HDmqZb/y9xK0m4 uIPc8wxeohLyyL0K8/+ucUD0TlS5Ris= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-571-aGQyV9GWOzaiQzuylNIzGQ-1; Wed, 22 Nov 2023 12:27:02 -0500 X-MC-Unique: aGQyV9GWOzaiQzuylNIzGQ-1 Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-77d61aad519so150130885a.2 for ; Wed, 22 Nov 2023 09:27:02 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700674021; x=1701278821; 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=yxtG9bNvfekcQizIY3gX6HS04qB/CJqNeWWIO4/98Eg=; b=ocdS4ONJ5xTiYg28JWJNXV6lQN6b+FbA4ZlN+Aa7H55bt38+TRFkwdln0E4yC3H88j BasaVXoRtg8DX2f67z0Ag/JEZTv0Iyx0ayA4q8bNfqVcXR9iRQz4HW9HWE5tsqb37Mi7 Cu8wX0R+b8UTMyoEt5pZPRGz34RO1SPP7yL4q1XqkPAR4Qg0BTrYGUHlySF9quBIzPMq PvGnU43kNmJWs661DjgxhZuXw2CiWCcT8dERlyfmOBisx3X+pxyeYys5OvjVrdez4UyL MXvAR1qJu+AO4GI1DzaktyrCupdQQNlLePH9otROJAzp/6Dd2Bt35t2Ik+SuwVB4hIw4 tHkQ== X-Gm-Message-State: AOJu0YwABFwoXUmzHKAd6nnNb2ZYhn+xvdDhmUn1P019CrK1J6bzD+zE v0yHKXtTlYzM0NTfkEt8RqPurMwFDUKlLZu8t78TDzu6N4iehzlNR3WbAOfzIUlIM1R0jkPV8Po ToKARC9qNAvx6xV39R9LWRhsXzdHmhjwRyFIgw2PYJJuUyQROVmGXqbl791RHoK6fAkRUFwp2pS 4= X-Received: by 2002:a05:620a:1707:b0:77b:b1d2:955f with SMTP id az7-20020a05620a170700b0077bb1d2955fmr3686260qkb.4.1700674020792; Wed, 22 Nov 2023 09:27:00 -0800 (PST) X-Google-Smtp-Source: AGHT+IHRVVaGq81gPeiNCZKeyqk97xhU6US+QcWbXHIX44yewr7bH43Z9aWl1ZvNdoCFxIbKmfNSOw== X-Received: by 2002:a05:620a:1707:b0:77b:b1d2:955f with SMTP id az7-20020a05620a170700b0077bb1d2955fmr3686231qkb.4.1700674020427; Wed, 22 Nov 2023 09:27:00 -0800 (PST) Received: from localhost.localdomain (ool-457670bb.dyn.optonline.net. [69.118.112.187]) by smtp.gmail.com with ESMTPSA id bs35-20020a05620a472300b0076f12fcb0easm27805qkb.2.2023.11.22.09.26.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Nov 2023 09:26:59 -0800 (PST) From: Patrick Palka To: gcc-patches@gcc.gnu.org Cc: jason@redhat.com, Patrick Palka Subject: [PATCH] c++: alias template of non-template class [PR112633] Date: Wed, 22 Nov 2023 12:26:57 -0500 Message-ID: <20231122172657.542419-1-ppalka@redhat.com> X-Mailer: git-send-email 2.43.0.rc1 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-13.6 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_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE 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+incoming=patchwork.ozlabs.org@gcc.gnu.org Bootstrapped and regtested on x86-64-pc-linux-gnu, does this look OK for trunk/13? -- >8 -- The entering_scope adjustment in tsubst_aggr_type assumes if an alias is dependent, then so is the aliased type (and therefore it has template info) but that's not true for the dependent alias template specialization ty1 below which aliases the non-template class A. PR c++/112633 gcc/cp/ChangeLog: * pt.cc (tsubst_aggr_type): Handle empty TYPE_TEMPLATE_INFO in the entering_scope adjustment. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/alias-decl-75.C: New test. --- gcc/cp/pt.cc | 1 + gcc/testsuite/g++.dg/cpp0x/alias-decl-75.C | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/alias-decl-75.C diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc index ed681afb5d4..68ce4a87372 100644 --- a/gcc/cp/pt.cc +++ b/gcc/cp/pt.cc @@ -13976,6 +13976,7 @@ tsubst_aggr_type (tree t, if (entering_scope && CLASS_TYPE_P (t) && dependent_type_p (t) + && TYPE_TEMPLATE_INFO (t) && TYPE_CANONICAL (t) == TREE_TYPE (TYPE_TI_TEMPLATE (t))) t = TYPE_CANONICAL (t); diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-75.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-75.C new file mode 100644 index 00000000000..1a73a99856e --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-75.C @@ -0,0 +1,13 @@ +// PR c++/112633 +// { dg-do compile { target c++11 } } + +struct A { using type = void; }; + +template +using ty1 = A; + +template +using ty2 = typename ty1::type; + +template +ty2 f();