From patchwork Tue Apr 15 15:01:36 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zamyatin, Igor" X-Patchwork-Id: 339308 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 F3CC2140077 for ; Wed, 16 Apr 2014 01:04:40 +1000 (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:references:in-reply-to :content-type:content-transfer-encoding:mime-version; q=dns; s= default; b=U3773iGQKMUbVOWyMLnKeIU7Z3qhKfy3a0hJ7ZG8oXmZ1d1tYO3vt hl9ecGqXudjfmju+Tzq2vTOUNM/sJK/81MukbiKKPgq86J2HcAZ8U7CMU2PlZxyp Gzmkg2E+K2RE0+orcBx8tuvk4QLxhJyNZK+CdO8rfE7KJaY57dwkIM= 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:references:in-reply-to :content-type:content-transfer-encoding:mime-version; s=default; bh=MLLhp+P4hcSc8ZDe7UjfTujyOos=; b=ErxcUX1GRV1OyyB8LJVrLYUCMj8F o23/Z4wtjmTH/PsJQmOfaveyzpURciQ/IOJzauDupka9TT2I8Fe38NaettePQlQB cDnmBwCITHtYeZkUX10N2Pec5IFYvLgRlG1+e3m6v/3ls04mYE5A9kTnorDtpBLj +ZzV+XyYcGJC9fo= Received: (qmail 19923 invoked by alias); 15 Apr 2014 15:04:33 -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 19913 invoked by uid 89); 15 Apr 2014 15:04:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL, BAYES_00, MIME_BASE64_BLANKS, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mga09.intel.com Received: from mga09.intel.com (HELO mga09.intel.com) (134.134.136.24) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 15 Apr 2014 15:04:32 +0000 Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP; 15 Apr 2014 07:58:31 -0700 X-ExtLoop1: 1 Received: from irsmsx102.ger.corp.intel.com ([163.33.3.155]) by fmsmga001.fm.intel.com with ESMTP; 15 Apr 2014 08:02:27 -0700 Received: from irsmsx101.ger.corp.intel.com (163.33.3.153) by IRSMSX102.ger.corp.intel.com (163.33.3.155) with Microsoft SMTP Server (TLS) id 14.3.123.3; Tue, 15 Apr 2014 16:01:36 +0100 Received: from irsmsx103.ger.corp.intel.com ([169.254.3.172]) by IRSMSX101.ger.corp.intel.com ([169.254.1.245]) with mapi id 14.03.0123.003; Tue, 15 Apr 2014 16:01:36 +0100 From: "Zamyatin, Igor" To: Jason Merrill , Jakub Jelinek CC: "GCC Patches (gcc-patches@gcc.gnu.org)" , "Iyer, Balaji V" Subject: RE: [PATCH, PR60189, Cilk+] Fix for ICE with incorrect Cilk_sync usage Date: Tue, 15 Apr 2014 15:01:36 +0000 Message-ID: <0EFAB2BDD0F67E4FB6CCC8B9F87D7569429FC4CC@IRSMSX103.ger.corp.intel.com> References: <0EFAB2BDD0F67E4FB6CCC8B9F87D7569429DBFEF@IRSMSX103.ger.corp.intel.com> <0EFAB2BDD0F67E4FB6CCC8B9F87D7569429DC138@IRSMSX103.ger.corp.intel.com> <20140410142731.GF1817@tucnak.redhat.com> <5348027F.1050407@redhat.com> <0EFAB2BDD0F67E4FB6CCC8B9F87D7569429E0533@IRSMSX103.ger.corp.intel.com> <534B6054.1070800@redhat.com> <0EFAB2BDD0F67E4FB6CCC8B9F87D7569429EE571@IRSMSX101.ger.corp.intel.com> <534C1F71.5040508@redhat.com> In-Reply-To: <534C1F71.5040508@redhat.com> MIME-Version: 1.0 X-IsSubscribed: yes > -----Original Message----- > From: Jason Merrill [mailto:jason@redhat.com] > Sent: Monday, April 14, 2014 9:49 PM > To: Zamyatin, Igor; Jakub Jelinek > Cc: GCC Patches (gcc-patches@gcc.gnu.org); Iyer, Balaji V > Subject: Re: [PATCH, PR60189, Cilk+] Fix for ICE with incorrect Cilk_sync usage > > Oh, I see where the problem is coming from. Cilk_sync is a statement, but > it's being parsed as an expression. Let's move it to cp_parser_statement. Something like this (better to put new code in separate routine?)? Thanks, Igor > > Jason diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index bb59e3b..3105d6c 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -5835,20 +5835,6 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p, } break; } - - case RID_CILK_SYNC: - if (flag_cilkplus) - { - tree sync_expr = build_cilk_sync (); - SET_EXPR_LOCATION (sync_expr, - cp_lexer_peek_token (parser->lexer)->location); - finish_expr_stmt (sync_expr); - } - else - error_at (token->location, "-fcilkplus must be enabled to use" - " %<_Cilk_sync%>"); - cp_lexer_consume_token (parser->lexer); - break; case RID_BUILTIN_SHUFFLE: { @@ -9404,6 +9390,24 @@ cp_parser_statement (cp_parser* parser, tree in_statement_expr, statement = cp_parser_jump_statement (parser); break; + case RID_CILK_SYNC: + cp_lexer_consume_token (parser->lexer); + if (flag_cilkplus) + { + tree sync_expr = build_cilk_sync (); + SET_EXPR_LOCATION (sync_expr, + token->location); + statement = finish_expr_stmt (sync_expr); + } + else + { + error_at (token->location, "-fcilkplus must be enabled to use" + " %<_Cilk_sync%>"); + statement = error_mark_node; + } + cp_parser_require (parser, CPP_SEMICOLON, RT_SEMICOLON); + break; + /* Objective-C++ exception-handling constructs. */ case RID_AT_TRY: case RID_AT_CATCH: