From patchwork Sat Apr 14 11:35:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Thomas_K=C3=B6nig?= X-Patchwork-Id: 898152 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-476393-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=tkoenig.net Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="hwNzrXFh"; dkim-atps=neutral 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 40NXdn4gbkz9s0q for ; Sat, 14 Apr 2018 21:35:54 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:to :from:subject:message-id:date:mime-version:content-type; q=dns; s=default; b=DnzYnek0vT9yoB9b7RLHRBl//nmkVCqWAZoq1qE1nxff9ohIF1 wd1hnbGob54gJh5AfMF2wWtlqBpZP2BdQEdv1R2FFJ3DlvnvnXzBdxs4QxQO33ts GiMU/6sQCT9NN354hGFiI5TU0QMJdLC9Ilo2KQz07xmdTr+NVt+zPp10o= 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:to :from:subject:message-id:date:mime-version:content-type; s= default; bh=FSwyv/psQNIlBWwmieh3ZWQiDtE=; b=hwNzrXFhG6+NC+W/AxVE LctVw5xRipDzmbsOM6fUlSQShrB2DJb4XMrTcsvSpWzTTIISola7YVgqGoCNKriS pz9dNA4/t81GRKBYwtESUeO4oUM0D0+WGcFxie0fjH2n4Uo+SIfYykAaZiWxjDOs BHkjBntOyebcqPvH/YuUL7U= Received: (qmail 97885 invoked by alias); 14 Apr 2018 11:35:43 -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 97859 invoked by uid 89); 14 Apr 2018 11:35:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.4 required=5.0 tests=BAYES_00, GIT_PATCH_2, GIT_PATCH_3, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=sk:travers X-Spam-User: qpsmtpd, 2 recipients X-HELO: mo4-p00-ob.smtp.rzone.de Received: from mo4-p00-ob.smtp.rzone.de (HELO mo4-p00-ob.smtp.rzone.de) (81.169.146.217) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 14 Apr 2018 11:35:40 +0000 X-RZG-AUTH: :OGckYUunfvGNVUL0FlRnC4eRM+bOwx0tUtYTrJ/xeZX+ZVZvrbiROUdhOG6UdEk= X-RZG-CLASS-ID: mo00 Received: from [192.168.178.68] by smtp.strato.de (RZmta 43.2 DYNA|AUTH) with ESMTPSA id z016dcu3EBZbBu4 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (curve secp521r1 with 521 ECDH bits, eq. 15360 bits RSA)) (Client did not present a certificate); Sat, 14 Apr 2018 13:35:37 +0200 (CEST) To: "fortran@gcc.gnu.org" , gcc-patches From: =?utf-8?q?Thomas_K=C3=B6nig?= Subject: [patch, fortran] Fix PR 85387 Message-ID: <7b66107b-4f8f-a361-7f88-915b147e2d4f@tkoenig.net> Date: Sat, 14 Apr 2018 13:35:37 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 Hello world, the attached patch fixes the PR, an 8 regression caused by trying to convert a nested implied DO loop to an array for a case where this was not possible. Regression-tested. OK for trunk? Regards Thomas 2018-04-14 Thomas Koenig PR fortran/85387 * frontend-passes.c (traverse_io_block): Check for start, end or stride being defined by an outer implied DO loop. 2018-04-14 Thomas Koenig PR fortran/85387 * gfortran.dg/implied_do_io_5.f90: New test. Index: frontend-passes.c =================================================================== --- frontend-passes.c (Revision 259222) +++ frontend-passes.c (Arbeitskopie) @@ -1237,6 +1237,23 @@ traverse_io_block (gfc_code *code, bool *has_reach } } + /* Check for cases like ((a(i, j), i=1, j), j=1, 2). */ + for (int i = 1; i < ref->u.ar.dimen; i++) + { + if (iters[i]) + { + gfc_expr *var = iters[i]->var; + for (int j = i - 1; j < i; j++) + { + if (iters[j] + && (gfc_check_dependency (var, iters[j]->start, true) + || gfc_check_dependency (var, iters[j]->end, true) + || gfc_check_dependency (var, iters[j]->step, true))) + return false; + } + } + } + /* Create new expr. */ new_e = gfc_copy_expr (curr->expr1); new_e->expr_type = EXPR_VARIABLE;