From patchwork Mon Aug 8 08:24:44 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andre Vehreschild X-Patchwork-Id: 656608 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 3s79TH3ljZz9s4x for ; Mon, 8 Aug 2016 18:25:20 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b=mxqc0ym8; 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=PYma6mLb4IQP0Qyd NWtpA4sMggeYi5pIctXRtn+HmoiFR/vCN9FxhRUI1PdTjEPv0N5/Kw/eZHtOYpI+ jVEKNFlkW9hZY5hN8TjKfPAG5TSFdskwqf6ZWPJEa+Y+IU6Dny90nwG3z/dTluYQ GOUaBRizNHzcsuBSvcH2om+SX3A= 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=U+6AkXuyqeDzCHus8rCR+P LU/h0=; b=mxqc0ym808oNCm3SaxUl7UGO5x5pXNf7CouSgl0dsii0NbOo8/Co6J H7w1F0WeT15KAZpt8CSoOSwIf5eHVxZzrjJ2ecOavaXUsNAQkOCwld9zgV2CijO1 MfLBp/0ORVLcrGJedKixFGLaI5CVxFYwfjTdPesGJw+xy81chFpzU= Received: (qmail 17022 invoked by alias); 8 Aug 2016 08:25:05 -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 14464 invoked by uid 89); 8 Aug 2016 08:25:03 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, KAM_ASCII_DIVIDERS, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=no version=3.3.2 spammy=nicht, U*kargl, sk:karglg, karglgccgnuorg X-Spam-User: qpsmtpd, 2 recipients X-HELO: mout.gmx.net Received: from mout.gmx.net (HELO mout.gmx.net) (212.227.17.20) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 08 Aug 2016 08:24:52 +0000 Received: from vepi2 ([92.209.45.60]) by mail.gmx.com (mrgmx101) with ESMTPSA (Nemesis) id 0Lpfas-1b3gdf2OHe-00fVwG; Mon, 08 Aug 2016 10:24:45 +0200 Date: Mon, 8 Aug 2016 10:24:44 +0200 From: Andre Vehreschild To: Thomas Koenig Cc: GCC-Patches-ML , GCC-Fortran-ML Subject: Re: Ping [Fortran, Patch, pr70524, v1] [5/6/7 Regression] ICE when using -frepack-arrays -Warray-temporaries Message-ID: <20160808102444.59cd2018@vepi2> In-Reply-To: References: <20160725125514.25312866@vepi2> <20160806110704.1e9de270@vepi2> MIME-Version: 1.0 X-UI-Out-Filterresults: notjunk:1; V01:K0:p3bsu2sszyI=:lyoe/UwCFzAxicOS2dgJbm XZt5SQ+F3PFh/LU1M5gp8xgmhI0B82h5k5jdU7Mshe0IXGzlR9Tb7WBYbw11BE2hoocLzgcGM mjqL3r9Eleq1YwpjEF4ha5uCd7C4T8NAfowSjeHn5pqB/Qzf7CS1VGweZ6Bqb1NUApscr4xzD QB3p1V44YpbGpAJEqXjXDjPAxXlPKPlPm0VM0RHV8ZsOVvnh0vA0Cza5N2uIfjZL0sbhriyDr 6eG/UBrAjFi7ZKRzYcgqwEgB+QLRMQvW71grwPII+Qxps0+tIG4bH/FxOm6z2Z2+tXfFuK7xe XxJVeJskbB4wKHKcK5LBxSVZ8cjgeTDVWhxcQMj6iTDTCSN8FvxS3/Sugqe4DytqeuxA1yuGR zA6ZkyXO06wJ9l9Ej7x/podgKZpOo53PCZ/S+MinZ+Fa8QD75x6hsSrsZx+ec4LNhK8vbDadP /NMrnso9k6dBeerSoSFm9nOy/7mz7HvpAHHtTLhfCL0sTOpJyUkvOB++lLICoDQxmKGafKVg8 xfMCbjxXWaFEQuTgGyVjElle2p6g/XqWGken/CXqG+PU8DE7n78vSx5+T2d8qPB5kIuPu+F+0 wH5QMppGG0YNOqmFqnRHOVs62IjmNIrMSRnyrcfCEGHalZckFHeQ70qkpC+0+FN+DhDJ23S7p rknQ47/bXxJ/khTY0UDscWiiIkuJTp8x6UG0EpO4Z67KoBOeOJBVhGkuI0X5+aNxOuPCaNKpD Og2Yl/kUViugBwdPBHMzOPJHS6hXMf+qJ3iQDvHPjeOChR7Tm+4zBYt8q/Q= Hi Thomas, thanks for the review. Committed as r239230 in trunk, r239231 in gcc-6-branch, r239232 in gcc-5-branch. Thanks again, Andre On Mon, 8 Aug 2016 08:37:16 +0200 Thomas Koenig wrote: > Hi Andre, > > the patch is OK. > > > > Ping. > > Regards > > Thomas > Index: gcc/fortran/ChangeLog =================================================================== --- gcc/fortran/ChangeLog (Revision 239230) +++ gcc/fortran/ChangeLog (Arbeitskopie) @@ -1,3 +1,12 @@ +2016-08-08 Andre Vehreschild + + Backport from trunk: + PR fortran/70524 + * trans-array.c (gfc_trans_dummy_array_bias): Ensure that the + location information is correctly set. + * trans-decl.c (gfc_trans_deferred_vars): Set the locus of the + current construct early. + 2016-07-29 Steven G. Kargl Thomas Koenig Index: gcc/fortran/trans-array.c =================================================================== --- gcc/fortran/trans-array.c (Revision 239230) +++ gcc/fortran/trans-array.c (Arbeitskopie) @@ -5928,7 +5928,12 @@ return; } + loc.nextc = NULL; gfc_save_backend_locus (&loc); + /* loc.nextc is not set by save_backend_locus but the location routines + depend on it. */ + if (loc.nextc == NULL) + loc.nextc = loc.lb->line; gfc_set_backend_locus (&sym->declared_at); /* Descriptor type. */ Index: gcc/fortran/trans-decl.c =================================================================== --- gcc/fortran/trans-decl.c (Revision 239230) +++ gcc/fortran/trans-decl.c (Arbeitskopie) @@ -3975,6 +3975,8 @@ else if (proc_sym->as) { tree result = TREE_VALUE (current_fake_result_decl); + gfc_save_backend_locus (&loc); + gfc_set_backend_locus (&proc_sym->declared_at); gfc_trans_dummy_array_bias (proc_sym, result, block); /* An automatic character length, pointer array result. */ @@ -3984,8 +3986,6 @@ tmp = NULL; if (proc_sym->ts.deferred) { - gfc_save_backend_locus (&loc); - gfc_set_backend_locus (&proc_sym->declared_at); gfc_start_block (&init); tmp = gfc_null_and_pass_deferred_len (proc_sym, &init, &loc); gfc_add_init_cleanup (block, gfc_finish_block (&init), tmp); Index: gcc/testsuite/ChangeLog =================================================================== --- gcc/testsuite/ChangeLog (Revision 239230) +++ gcc/testsuite/ChangeLog (Arbeitskopie) @@ -1,3 +1,9 @@ +2016-08-08 Andre Vehreschild + + Backport from trunk: + PR fortran/70524 + * gfortran.dg/dependency_48.f90: New test. + 2016-08-08 Thomas Koenig PR fortran/70040 Index: gcc/testsuite/gfortran.dg/dependency_48.f90 =================================================================== --- gcc/testsuite/gfortran.dg/dependency_48.f90 (nicht existent) +++ gcc/testsuite/gfortran.dg/dependency_48.f90 (Arbeitskopie) @@ -0,0 +1,26 @@ +! { dg-do compile } +! { dg-options "-frepack-arrays -Warray-temporaries -O" } + +! Same as dependency_35 but with repack-arrays + +module foo + implicit none +contains + pure function bar(i,j) ! { dg-warning "Creating array temporary at \\(1\\)" } + integer, intent(in) :: i,j + integer, dimension(2,2) :: bar + bar = 33 + end function bar +end module foo + +program main + use foo + implicit none + integer a(2,2), b(2,2),c(2,2), d(2,2), e(2) + + read (*,*) b, c, d + a = matmul(b,c) + d + a = b + bar(3,4) + a = bar(3,4)*5 + b + e = sum(b,1) + 3 +end program main