Patchwork [fortran] PR fortran/54166 ICE on array section (4.8 regression)

login
register
mail settings
Submitter Mikael Morin
Date Aug. 3, 2012, 2:18 p.m.
Message ID <501BDDBD.2060308@sfr.fr>
Download mbox | patch
Permalink /patch/174994/
State New
Headers show

Comments

Mikael Morin - Aug. 3, 2012, 2:18 p.m.
Hello,

here is the fix for the regression I have introduced with my assumed
rank bounds patch.

Will test and commit as obvious.
Mikael


2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/54166
	* trans-array.c (set_loop_bounds): Access specinfo using spec_dim.

2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/54166
	* gfortran.dg/array_5.f90: New test.
Paul Richard Thomas - Aug. 4, 2012, 9:30 a.m.
Dear Mikael,

This looks to be "obvious" and is certainly OK for trunk.

Thanks for the patch.

Paul

On 3 August 2012 16:18, Mikael Morin <mikael.morin@sfr.fr> wrote:
> Hello,
>
> here is the fix for the regression I have introduced with my assumed
> rank bounds patch.
>
> Will test and commit as obvious.
> Mikael
>
>
> 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
>
>         PR fortran/54166
>         * trans-array.c (set_loop_bounds): Access specinfo using spec_dim.
>
> 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
>
>         PR fortran/54166
>         * gfortran.dg/array_5.f90: New test.
>
>
H.J. Lu - Aug. 4, 2012, 6:05 p.m.
On Fri, Aug 3, 2012 at 7:18 AM, Mikael Morin <mikael.morin@sfr.fr> wrote:
> Hello,
>
> here is the fix for the regression I have introduced with my assumed
> rank bounds patch.
>
> Will test and commit as obvious.
> Mikael
>
>
> 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
>
>         PR fortran/54166
>         * trans-array.c (set_loop_bounds): Access specinfo using spec_dim.
>
> 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
>
>         PR fortran/54166
>         * gfortran.dg/array_5.f90: New test.
>
>

Will this also fix

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54175

Patch

Index: trans-array.c
===================================================================
--- trans-array.c	(révision 190099)
+++ trans-array.c	(copie de travail)
@@ -4503,9 +4503,9 @@  set_loop_bounds (gfc_loopinfo *loop)
 	  else if (INTEGER_CST_P (info->start[dim])
 		   && !INTEGER_CST_P (specinfo->start[spec_dim])
 		   && integer_onep (info->stride[dim])
-		      == integer_onep (specinfo->stride[dim])
+		      == integer_onep (specinfo->stride[spec_dim])
 		   && INTEGER_CST_P (info->stride[dim])
-		      == INTEGER_CST_P (specinfo->stride[dim]))
+		      == INTEGER_CST_P (specinfo->stride[spec_dim]))
 	    loopspec[n] = ss;
 	  /* We don't work out the upper bound.
 	     else if (INTEGER_CST_P (info->finish[n])