From patchwork Fri Jan 13 10:40:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andre Vehreschild X-Patchwork-Id: 91302 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp125750qgi; Fri, 13 Jan 2017 02:41:32 -0800 (PST) X-Received: by 10.98.86.203 with SMTP id h72mr12418490pfj.108.1484304092024; Fri, 13 Jan 2017 02:41:32 -0800 (PST) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id q10si12325944pgf.264.2017.01.13.02.41.31 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Jan 2017 02:41:32 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-return-446059-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org; spf=pass (google.com: domain of gcc-patches-return-446059-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-446059-patch=linaro.org@gcc.gnu.org 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=ToJu5sx3k9KNrDKE 8DTUBizN/YBRXvbhmAOFCVP7TuvJY4pqehCipLBSyiXEtuYCzJZ32XsN8T0pc/I/ vdHUxyE7AutL3zgjSt8SOeN/m2dKcGAR068thqJiwbRspOrUID7doYHvjHhXMTiM meJ4+7YuXb9PG7GuWMkySh+dodQ= 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=My2BuW5AdZtWA/0quGHmk6 4fOCI=; b=xxBebPvpshpyLYvLqqFJW6uN/pvBsdp2jMAPtdhaaufnDjvWMdfNdU cBjh2ZAlNOH8DZPsJIlNWVd+f0zUXKTxdiHNXU9zb6WSXyQS8GBfOHRYr6T8bGCf VumpVvt2yFmf4GyJrSQ0M7yqHF0OmwcbxU7FOL73QK4vEgDc6XPHk= Received: (qmail 2387 invoked by alias); 13 Jan 2017 10:41:00 -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 2273 invoked by uid 89); 13 Jan 2017 10:41:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.5 required=5.0 tests=AWL, BAYES_05, FREEMAIL_FROM, KAM_ASCII_DIVIDERS, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=no version=3.3.2 spammy=nicht, Jerry, D*charter.net, delisle X-Spam-User: qpsmtpd, 2 recipients X-HELO: mout.gmx.net Received: from mout.gmx.net (HELO mout.gmx.net) (212.227.15.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 13 Jan 2017 10:40:49 +0000 Received: from vepi2 ([92.76.205.227]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0LfSeH-1cltlE0T5F-00p3XT; Fri, 13 Jan 2017 11:40:45 +0100 Date: Fri, 13 Jan 2017 11:40:44 +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: <20170113114044.2455c25f@vepi2> In-Reply-To: <6fd2e3fa-75e3-ac00-d5cd-16b98341d141@charter.net> References: <20170112144338.24f93307@vepi2> <6fd2e3fa-75e3-ac00-d5cd-16b98341d141@charter.net> MIME-Version: 1.0 X-UI-Out-Filterresults: notjunk:1; V01:K0:nPyieJbmzh0=:7XL8NNHORipDRroDh9ZcJq IqRdtaS7FFbvkRRVrOJH0wXoVuREAS0k+1tSwU0K7tddBE2uotZHowZ682B/+8mBkloCeshVd DPHICap67kkhBxzjQQ4fJCUI4Y+APtBtZdACJpSDgta/tcj3B6nqcHFf5A3OIXPcb6AOO5JQ0 ynfXMqU0GM8aN2dc50WmM+3SRMSYs3iM7S2t381Pj2Z+yKdWz5sQXHF3E1ArNAnjSbyodnkDV N4JOVQoTPZ/DBmJU3khhaqAQs8d0vMu00m+wfYSuD+SnbDsbs4SRzYBH6XhKCek5FyGMyj4xJ IYYWyz0M6KNspJa2eAwv3hPK5QBprRIXBdre1vpEglYv6fHx7vH5UaKQCrjo0+FFpdOOMH7P7 p/Sjd3SxHfVppd3qZgy7tfkJXLLz2zdJ5ASPpcBYpcpt0GbFwhl4bmjgRGS3yE7uiY1YvjiSK fPTbbWJD7ULU1glZK7dO2XEqJJidEmVH+3WA4RzMxvSkIJl7yiaSR36nEB8pqpVWlBuP1ajS0 +yIJN9PymSpbuMzozevEou4nOvARXFA2GXQpO4zGgClO0JTHtQ3WoFkEd4OBvQipQDMFD6ULq /Fg8PTze7CrFh4XPm5QjmY8/BQceCc7lu/qocHL6Jq5ieI7Hoi5NBgI61sMX9e/RbJUV41BQ3 U/f5zCiBtJSW29G3CTNtHuFHVFFS6rx6R3Bz50pTt0Uv+81sDcBNHwlWciYMB1Ja4198XiyqS R+YXX13ayTJ1G/3OqHBd8iUWC3kcv629d3oGY35xtNjgUi7GVoyODa5eU8s= 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 -- Andre Vehreschild * Email: vehre ad gmx dot de Index: gcc/fortran/ChangeLog =================================================================== --- gcc/fortran/ChangeLog (Revision 244409) +++ gcc/fortran/ChangeLog (Arbeitskopie) @@ -1,5 +1,11 @@ 2017-01-13 Andre Vehreschild + PR fortran/70697 + * resolve.c (resolve_lock_unlock_event): Resolve the expression for + event's until_count. + +2017-01-13 Andre Vehreschild + PR fortran/70696 * trans-expr.c (gfc_get_tree_for_caf_expr): Ensure the backend_decl is valid before accessing it. Index: gcc/fortran/resolve.c =================================================================== --- gcc/fortran/resolve.c (Revision 244409) +++ gcc/fortran/resolve.c (Arbeitskopie) @@ -9158,10 +9158,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 244409) +++ gcc/testsuite/ChangeLog (Arbeitskopie) @@ -1,5 +1,10 @@ 2017-01-13 Andre Vehreschild + PR fortran/70697 + * gfortran.dg/coarray/event_4.f08: New test. + +2017-01-13 Andre Vehreschild + PR fortran/70696 * gfortran.dg/coarray/event_3.f08: New test. 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