From patchwork Sat Mar 15 21:09:08 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adam Butcher X-Patchwork-Id: 330675 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id C0CA32C00B0 for ; Sun, 16 Mar 2014 08:09:28 +1100 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id; q=dns; s=default; b=v0T7lkZNcfaC BTvbBHpnuoD7JKPgcM+1WX5ft/MbnVOcElmVl3PvIeh5p5KTx1FDSQvznDFVM30q 3wOiEGVGY//KHuuIj71YE7ojzuHgQoVp63VT6d8zQdVq+MTJoPOr95e3QBkUCBWn ajSv0kpy2zsJG6XrsAlRVgvEBR9NlNc= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id; s=default; bh=djM/ISgX2y9VsNxUKr uPVgcqeeI=; b=W0iwY5tuosdgiB5ZPhosyVTlgcQ9yQuZy/oZRYxrQ3jQwMlo+D du7yFR4Z80N1l26NbvI1WQbJfKFJVsA2fVFjtNPMD4z1VyyFcgGTMZMZhj5YGI53 1QD9rLlBMIj1qiH9xb0gA8KGqwA+z9dDUEJOwNAT9Op70O/vx/QzDycww= Received: (qmail 31648 invoked by alias); 15 Mar 2014 21:09:20 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 31633 invoked by uid 89); 15 Mar 2014 21:09:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, KAM_COUK, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=no version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-wg0-f43.google.com Received: from mail-wg0-f43.google.com (HELO mail-wg0-f43.google.com) (74.125.82.43) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sat, 15 Mar 2014 21:09:19 +0000 Received: by mail-wg0-f43.google.com with SMTP id x13so3279277wgg.2 for ; Sat, 15 Mar 2014 14:09:15 -0700 (PDT) X-Received: by 10.180.164.69 with SMTP id yo5mr1926186wib.55.1394917755597; Sat, 15 Mar 2014 14:09:15 -0700 (PDT) Received: from xtorus.lan (munkyhouse.force9.co.uk. [84.92.244.81]) by mx.google.com with ESMTPSA id ee5sm9036497wib.8.2014.03.15.14.09.13 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 15 Mar 2014 14:09:14 -0700 (PDT) From: Adam Butcher To: gcc-patches@gcc.gnu.org Cc: Jason Merrill , Volker Reichelt , Adam Butcher Subject: [PATCH] Fix PR c++/60391 Date: Sat, 15 Mar 2014 21:09:08 +0000 Message-Id: <1394917748-3532-1-git-send-email-adam@jessamine.co.uk> PR c++/60391 * parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic function scope as per cp_parser_skip_to_end_of_statement. PR c++/60391 * g++.dg/cpp1y/pr60391.C: New testcase. --- gcc/cp/parser.c | 4 ++++ gcc/testsuite/g++.dg/cpp1y/pr60391.C | 9 +++++++++ 2 files changed, 13 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp1y/pr60391.C diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 64583ba..a01f204 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -3225,6 +3225,10 @@ cp_parser_skip_to_end_of_block_or_statement (cp_parser* parser) { int nesting_depth = 0; + /* Unwind generic function template scope if necessary. */ + if (parser->fully_implicit_function_template_p) + finish_fully_implicit_template (parser, /*member_decl_opt=*/0); + while (nesting_depth >= 0) { cp_token *token = cp_lexer_peek_token (parser->lexer); diff --git a/gcc/testsuite/g++.dg/cpp1y/pr60391.C b/gcc/testsuite/g++.dg/cpp1y/pr60391.C new file mode 100644 index 0000000..81bf703 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/pr60391.C @@ -0,0 +1,9 @@ +// PR c++/60391 +// { dg-options -std=c++1y } + +namespace N +{ + int operator"" _X(auto) {} // { dg-error "invalid" } +} + +namespace N {}