From patchwork Wed Sep 15 04:04:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Merrill X-Patchwork-Id: 45007 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 05BD23858413 for ; Wed, 15 Sep 2021 04:05:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 05BD23858413 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1631678739; bh=UowmmOiPyLz7b1Lv3AlkPk/SoSOyc7aXFpmoomj8vjk=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=oIZnV7Md/tfixM7ZDOBTrvOSI78CpdYloOTWs8zRqauwhuBS2dcY1WbVsCKXvfapq p/p5B9vtnGXEn7XSjPLBYd/tWeolqG6Pft8XXUvxh2sRytFwVniEj6osiW6rSjOD+O DqAZ4FiV3TR8BdO8Mbuz5S7xFEvMijx7cmZFcfCY= 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 [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id F34243858407 for ; Wed, 15 Sep 2021 04:05:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org F34243858407 Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-585-5ept1GPIO1WjF0Fk-PiwDg-1; Wed, 15 Sep 2021 00:04:56 -0400 X-MC-Unique: 5ept1GPIO1WjF0Fk-PiwDg-1 Received: by mail-qv1-f70.google.com with SMTP id ib9-20020a0562141c8900b003671c3a1243so2034123qvb.21 for ; Tue, 14 Sep 2021 21:04:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=UowmmOiPyLz7b1Lv3AlkPk/SoSOyc7aXFpmoomj8vjk=; b=J0BDFTH1O3aWNvPW73UaxMsNtYoGGufdW7S9mlN6fgFSDTxy54Te4IXiWQdXjlK+E6 GjgxZSx6CllxUVItk7qFnzG3CBDr9K8Kd0amkD4/cADi45MUaP8gGTdpbIhQxOWxdbdS saKebe7LOrI+O/+MA5+w50YBBsk0cil2lhC9BXSFfrE+ucByoowK1vBybfjjFpqiowxC yKR76xbY3yLv5Klwde38Nhi4hbSN/NwlVnJjGdq5+Es+hydcmQnj2zcgzNJWDNVGvXBG 7NAOiK1UdNRygcAm9H9bKjOHUtclyDKnXqF9KRehjkbI3Lggo/qczF7XeoAtSt8JYW7C tHNw== X-Gm-Message-State: AOAM531ZRQd+m4wJpirMaxTbhYaWSLDOZMBFlACxfwlM1B8aXbfJ0NDi +izOh0UkToLirYpACTNki4rHbvcZSH/Y2X7/D9pxptOj4YNhXAaYS0BBylnT37dfWWYi0RakJT6 6J2szhPRvtrc0bQahLi5OBuxAjnBFJUyBCuUXY9q2tWIO3PO0wSihnO41C95EP5JQJg== X-Received: by 2002:ac8:7f15:: with SMTP id f21mr8071662qtk.413.1631678695799; Tue, 14 Sep 2021 21:04:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx8JzC3K5HeYxQmPu921ZkMq4epWLJHSWdVPzZYTN3DVZDCmX84lraOEkKdv+Zuz1rCNAjG7A== X-Received: by 2002:ac8:7f15:: with SMTP id f21mr8071648qtk.413.1631678695364; Tue, 14 Sep 2021 21:04:55 -0700 (PDT) Received: from barrymore.redhat.com (130-44-159-43.s11817.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [130.44.159.43]) by smtp.gmail.com with ESMTPSA id o21sm7357678qtr.33.2021.09.14.21.04.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Sep 2021 21:04:54 -0700 (PDT) To: gcc-patches@gcc.gnu.org Subject: [pushed] c++: tweak C++20 destructor template-id rule Date: Wed, 15 Sep 2021 00:04:52 -0400 Message-Id: <20210915040452.957026-1-jason@redhat.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-13.2 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_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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" While working on a larger change to destructor lookup I noticed that this rule talks about declarators, but we weren't limiting the error to the case where we're parsing a declarator. I don't know if this actually broke anything, since a CPP_TEMPLATE_ID would have to have been parsed once before, but it's more correct this way. Tested x86_64-pc-linux-gnu, applying to trunk. gcc/cp/ChangeLog: * parser.c (cp_parser_unqualified_id): Only complain about ~A in a declarator. --- gcc/cp/parser.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) base-commit: bd55fa102715c7442c050b193dadfdb5337e2377 diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index e44c5c6b57c..ab1dc81b997 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -6379,7 +6379,8 @@ cp_parser_unqualified_id (cp_parser* parser, /* DR 2237 (C++20 only): A simple-template-id is no longer valid as the declarator-id of a constructor or destructor. */ - if (token->type == CPP_TEMPLATE_ID && cxx_dialect >= cxx20) + if (token->type == CPP_TEMPLATE_ID && declarator_p + && cxx_dialect >= cxx20) { if (!cp_parser_simulate_error (parser)) error_at (tilde_loc, "template-id not allowed for destructor");