From patchwork Wed Mar 15 12:43:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Merrill X-Patchwork-Id: 66407 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 148AA3857803 for ; Wed, 15 Mar 2023 12:44:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 148AA3857803 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1678884260; bh=mPruenYevlEEwZs53uyaTVfTnT7D/n68NHmlero3k3g=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=ogU02oAa8bOndWXlRTWYScpAzVCMOEEUxsL2a50EPecfd3QJQhfNf3Z3vOcvB7h1B WsZ/wqAnID9UQWF6HCzL8gCwTTKJRHwlFvbASYJwoaMuQIKU84m448HCBdPmVQmMW7 L3DcCqK/C/C6UToEmq9yKBwdJ9pHos88M7m3Yf2k= 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.129.124]) by sourceware.org (Postfix) with ESMTPS id E79463858D39 for ; Wed, 15 Mar 2023 12:43:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E79463858D39 Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-133-xJHajmFSOaGuNrrdaswoLA-1; Wed, 15 Mar 2023 08:43:50 -0400 X-MC-Unique: xJHajmFSOaGuNrrdaswoLA-1 Received: by mail-qv1-f71.google.com with SMTP id jh21-20020a0562141fd500b0053c23b938a0so11555763qvb.17 for ; Wed, 15 Mar 2023 05:43:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678884229; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mPruenYevlEEwZs53uyaTVfTnT7D/n68NHmlero3k3g=; b=m4aEjv/M3lMtXAHd3jBm1jcOKCXvdgOWpObN/RHzx+Io5kDGddZ7Pian/uhoChbahy /0r1zH3p6rK6iPUodWY+9gYhBZivMk5HvtNRVHkRtl4bssqHaKSeu9rBpC1MwAiBpg7J wp97GP9ODt8K2xE0j9HDoKTRslYjWRpvR/1O3FQMcnG4BOixmdUOUkaMdV8FHvZAsvBj fHMQBl9s3n2PyR6SFsEgRlBL5LWPMpyjt0y4iebELrwe7NtxE9vGNhhsewywnshP7gJ6 j9vX0yKD/BUhoBgYybe3fWqKPXy+Q/mkvTPf95KIM8wZrekrjKfFn+dpC9ZYlOT11Xug q55A== X-Gm-Message-State: AO0yUKWptAnsFoTkeDUs/XSN/IX8qDyuRN/gQvGjHFzOFxirt+ynEsMz oM/6i6nhCQzvqp7toPP0VO/qr7XE+FFcSo4jt8I3bTYoNiHVS3JyfZofFF8ENusRHy5QwsFeJDL BkylWQoxwF+rxH6PYfHEOy4otHGfYJbNXVL/Xn8IFCF2a/siywoNX//gDPxadB6L5tQy6IBF+kw == X-Received: by 2002:ac8:5904:0:b0:3bf:daae:7f2a with SMTP id 4-20020ac85904000000b003bfdaae7f2amr70222832qty.68.1678884229523; Wed, 15 Mar 2023 05:43:49 -0700 (PDT) X-Google-Smtp-Source: AK7set/SFw1HuAqeK+BzuWv5torUW5HMzUm8DA4LQv7gRExhZNoe+tulAZ9BbhZO37CmMoSVsZkK9A== X-Received: by 2002:ac8:5904:0:b0:3bf:daae:7f2a with SMTP id 4-20020ac85904000000b003bfdaae7f2amr70222788qty.68.1678884229039; Wed, 15 Mar 2023 05:43:49 -0700 (PDT) Received: from jason.cygnus.com (130-44-159-43.s15913.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [130.44.159.43]) by smtp.gmail.com with ESMTPSA id 18-20020ac856f2000000b003b848759ed8sm3650562qtu.47.2023.03.15.05.43.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Mar 2023 05:43:48 -0700 (PDT) To: gcc-patches@gcc.gnu.org Subject: [pushed] c++: injected class name as default ttp arg [PR58538] Date: Wed, 15 Mar 2023 08:43:46 -0400 Message-Id: <20230315124346.686647-1-jason@redhat.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-12.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_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.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jason Merrill via Gcc-patches From: Jason Merrill Reply-To: Jason Merrill Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Tested x86_64-pc-linux-gnu, applying to trunk. -- 8< -- This function needs to handle this case like convert_template_argument. PR c++/58538 gcc/cp/ChangeLog: * semantics.cc (check_template_template_default_arg): Check maybe_get_template_decl_from_type_decl. gcc/testsuite/ChangeLog: * g++.dg/template/ttp7.C: Remove expected error. --- gcc/cp/semantics.cc | 9 +++++++-- gcc/testsuite/g++.dg/template/ttp7.C | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) base-commit: 9e44a9932c11f028269f3aa7e3031e703d151b0b prerequisite-patch-id: dc293188137e8f94cea3b5c135e62efad8fec595 prerequisite-patch-id: 30ba81cfc50ea4cae63d361169fda721504d06f5 diff --git a/gcc/cp/semantics.cc b/gcc/cp/semantics.cc index d67a9b26719..57dd7b66da8 100644 --- a/gcc/cp/semantics.cc +++ b/gcc/cp/semantics.cc @@ -3468,8 +3468,13 @@ check_template_template_default_arg (tree argument) && TREE_CODE (argument) != UNBOUND_CLASS_TEMPLATE) { if (TREE_CODE (argument) == TYPE_DECL) - error ("invalid use of type %qT as a default value for a template " - "template-parameter", TREE_TYPE (argument)); + { + if (tree t = maybe_get_template_decl_from_type_decl (argument)) + if (TREE_CODE (t) == TEMPLATE_DECL) + return t; + error ("invalid use of type %qT as a default value for a template " + "template-parameter", TREE_TYPE (argument)); + } else error ("invalid default argument for a template template parameter"); return error_mark_node; diff --git a/gcc/testsuite/g++.dg/template/ttp7.C b/gcc/testsuite/g++.dg/template/ttp7.C index 0bcaa8f7292..672077e7e7d 100644 --- a/gcc/testsuite/g++.dg/template/ttp7.C +++ b/gcc/testsuite/g++.dg/template/ttp7.C @@ -11,6 +11,6 @@ template class = A<0> > struct B2 {}; // { dg-error "as a default template struct S { - template