From patchwork Sun Jan 29 14:48:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andre Vehreschild X-Patchwork-Id: 721179 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 3vBFlh2qGjz9sxN for ; Mon, 30 Jan 2017 01:49:02 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="KHm2As9V"; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type; q=dns; s=default; b=daUyATK05c+mjS3p 2cEhvenSh2O5pOWtBsp10g5wmMlJ8ugODhwlOrZKQvz1RAB8fqw54cafD3+bn6p8 X6OgFhfF/kj1LdVpUs+RsGkv3gb5IRXDhw3c0g/g2WVx62MwPrnL1KyK5flOOm0C 2Fn8p7G4b7BrDz3JAd1yrbGo73w= 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:date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type; s=default; bh=84U1cGtEKR6D5K1zz0g3xU DQYnI=; b=KHm2As9VJ7FdonvnfoM5SbZVV7i0PFefieUaHGRyqSLa71jNkHL6Bh Vu6usJMFLCbwBKfCIYuqssvqIr8DdxXE+51Z7KOAY3whxtAcvomEQRDluJ1o6Nb1 sqkdiQMngdPwB8dlCQAdtlZCY90G/OIu6h53xfw/yl+7Pt5S2uaHY= Received: (qmail 58547 invoked by alias); 29 Jan 2017 14:48:44 -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 58228 invoked by uid 89); 29 Jan 2017 14:48:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=3.7 required=5.0 tests=AWL, BAYES_20, FREEMAIL_FROM, KAM_ASCII_DIVIDERS, RCVD_IN_DNSWL_LOW, RCVD_IN_SORBS_WEB, SPF_PASS autolearn=no version=3.3.2 spammy=nicht, D*gmx.de, vehre@gmx.de, vehregmxde X-Spam-User: qpsmtpd, 2 recipients X-HELO: mout.gmx.net Received: from mout.gmx.net (HELO mout.gmx.net) (212.227.17.21) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 29 Jan 2017 14:48:27 +0000 Received: from vepi2 ([84.63.213.96]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MVrQS-1d0ZrV25Um-00X6ot; Sun, 29 Jan 2017 15:48:09 +0100 Date: Sun, 29 Jan 2017 15:48:07 +0100 From: Andre Vehreschild To: Jerry DeLisle Cc: GCC-Patches-ML , GCC-Fortran-ML Subject: Re: [PATCH, Fortran, pr70697, v1] [Coarray] ICE on EVENT WAIT with array element UNTIL_COUNT argument Message-ID: <20170129154807.21ced373@vepi2> In-Reply-To: <20170113114044.2455c25f@vepi2> References: <20170112144338.24f93307@vepi2> <6fd2e3fa-75e3-ac00-d5cd-16b98341d141@charter.net> <20170113114044.2455c25f@vepi2> MIME-Version: 1.0 X-UI-Out-Filterresults: notjunk:1; V01:K0:I2lU3yYBvOs=:B3+r6XJg/4rhXjdqP6Idzb END4KJclrppOeJHXR8UbZcl3U7yCh2PDdc7zOWwf/mo9kgyiYbjAXSy+8SXO0lqZfdub4a9m+ TS3cx1ClnFjVWkcxSvnvU7k6n2m83+1GRxBczqh6M1M7gjxRZg50Fe4wqATpymeowHi6L9iCQ 6NnOvml1NheowyIX8LtHkdNbvh3IYqISFsrrNuEgttmihomgV6bNPg8YSPtpspD2m/RVFGyeg XQcAbWUNNoavYX9YAQRZsLKN2cg2qPrjUJG2kPB/s/Hq7uBzJE8f+80+oMeJALpVAz72qmTq1 kH8cX0RkmzhibBmHX66AukhvftlClQ4aRHp0UZFgWZGpsdbF/myJfipZsWvB68DErEroiR0+O lo8SxVgcfivPDbg3pZZTomkLg0NCGhgtFmO0abonpFRg+baLCZ/RuNIaA/Ga1sTmUZ1Su1sw/ Ej70aAxBZyQnXJcUGybYt5s5SLkBuTX6u5+fHSoN8KLAFgp6d5n65FPVPCQKLASxf63OU3uCY m0397H4OItYoo8+fMpoOgY42uLR3/B3cf/+NTaU31ObRBc90OAQMi5/8hM8tcB3KHQKJMhqnI vqzYoZr5ynueFR8Xl9jg6U62H+M8hLCy+J9VVPzZfNzO226kuKc7JNDV4L7P9+7QJuOuZD/WZ P6MfpM3sErC3xSD8FcNaNN2P7g1yZp07eEn2Xpagn1xUm1AVt0m2cjT2ex58HpglNl8YnvDYC 5U1CqXLXyNeP0hLNJda7sv3kfh0st3smJEO3O4YSar70g6/41O16regqNBIo8crDzEapZCU7z H6jdX75WFCpEN5ALanMzFfHKNNfY22XtbnJ4zMaYAb1lmvosJUpdBemAK2hVNToei2m42NswQ 2bqVbGMEfC6ybOEhAb4BmZoIZgOFt3/c0psaSvpuu08nkr4ys5eWz7iBK0ycHJ09LsMNsEzEi do0N/JQhCrcXf3ybOpvv3S4cGQojbW3KBQ7GHoU3w9pXeIE4OkR+Oz+CXcUexCvE2TwEHyNPk MMu8umi2wT+PdetzLzJZkkjmU1HxFBxi6OhVHiFbBzBD Hi all, and here's the backport committed as r245015. Regards, Andre On Fri, 13 Jan 2017 11:40:44 +0100 Andre Vehreschild wrote: > Hi Jerry, > > thanks again for the fast review. Committed as r244413. > > Will backport to gcc-6 in about a week. > > Regards, > Andre > > On Thu, 12 Jan 2017 10:12:24 -0800 > Jerry DeLisle wrote: > > > On 01/12/2017 05:43 AM, Andre Vehreschild wrote: > > > Hi all, > > > > > > *** this is no duplicate, but +1 in the PR#! *** > > > > > > attached patch fixes the ICE by resolving the expression in UNTIL_COUNT > > > correctly. The ICE was caused by the array-specification in UNTIL_COUNT > > > not correctly set. > > > > > > Bootstraps and regtests ok on x86_64-linux/F25. Ok for trunk and gcc-6? > > > > > > - Andre > > > > > > > OK and thanks, > > > > Jerry > > Index: gcc/fortran/ChangeLog =================================================================== --- gcc/fortran/ChangeLog (Revision 245014) +++ gcc/fortran/ChangeLog (Arbeitskopie) @@ -1,5 +1,14 @@ 2017-01-29 Andre Vehreschild + Backported from trunk + 2017-01-13 Andre Vehreschild + + PR fortran/70697 + * resolve.c (resolve_lock_unlock_event): Resolve the expression for + event's until_count. + +2017-01-29 Andre Vehreschild + Backport from trunk PR fortran/70696 * trans-expr.c (gfc_get_tree_for_caf_expr): Ensure the backend_decl Index: gcc/fortran/resolve.c =================================================================== --- gcc/fortran/resolve.c (Revision 245014) +++ gcc/fortran/resolve.c (Arbeitskopie) @@ -8840,10 +8840,13 @@ return; /* Check for EVENT WAIT the UNTIL_COUNT. */ - if (code->op == EXEC_EVENT_WAIT && code->expr4 - && (code->expr4->ts.type != BT_INTEGER || code->expr4->rank != 0)) - gfc_error ("UNTIL_COUNT= argument at %L must be a scalar INTEGER " - "expression", &code->expr4->where); + if (code->op == EXEC_EVENT_WAIT && code->expr4) + { + if (!gfc_resolve_expr (code->expr4) || code->expr4->ts.type != BT_INTEGER + || code->expr4->rank != 0) + gfc_error ("UNTIL_COUNT= argument at %L must be a scalar INTEGER " + "expression", &code->expr4->where); + } } Index: gcc/testsuite/ChangeLog =================================================================== --- gcc/testsuite/ChangeLog (Revision 245014) +++ gcc/testsuite/ChangeLog (Arbeitskopie) @@ -1,6 +1,14 @@ 2017-01-29 Andre Vehreschild Backport from trunk + 2017-01-13 Andre Vehreschild + + PR fortran/70697 + * gfortran.dg/coarray/event_4.f08: New test. + +2017-01-29 Andre Vehreschild + + Backport from trunk 2017-01-19 Andre Vehreschild PR fortran/70696 Index: gcc/testsuite/gfortran.dg/coarray/event_4.f08 =================================================================== --- gcc/testsuite/gfortran.dg/coarray/event_4.f08 (nicht existent) +++ gcc/testsuite/gfortran.dg/coarray/event_4.f08 (Arbeitskopie) @@ -0,0 +1,12 @@ +! { dg-do run } +! +! Check that pr 70697 is fixed. + +program event_4 + use iso_fortran_env + integer :: nc(1) + type(event_type) done[*] + nc(1) = 1 + event post(done[1]) + event wait(done,until_count=nc(1)) +end