re PR fortran/54166 (ICE rank-1 assignment to rank-2 array section)

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

testsuite/
	PR fortran/54166
	* gfortran.dg/array_5.f90: New test.

From-SVN: r190130
This commit is contained in:
Mikael Morin 2012-08-03 16:00:50 +00:00
parent 2222df9f39
commit 8f96b84460
4 changed files with 36 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2012-08-03 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/48820

View File

@ -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])

View File

@ -1,3 +1,8 @@
2012-08-03 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/54166
* gfortran.dg/array_5.f90: New test.
2012-08-03 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/30318

View File

@ -0,0 +1,24 @@
! { dg-do compile }
!
! PR fortran/54166
! There was an ICE while chosing the bounds to scalarize the FAIL line.
!
! Contributed by Koen Poppe <koen.poppe@cs.kuleuven.be>
!
module ds_routines
contains
subroutine dsget(vertic,rstore)
real, dimension(:), intent(in out) :: rstore
real, dimension(:,:), intent(out) :: vertic
integer :: nrvert,point
nrvert = 4
point = 26
vertic(1,1:nrvert) = rstore(point+1:point+nrvert) ! FAIL
end subroutine dsget
end module ds_routines
program ds_routines_program
use ds_routines
print *, "ok"
end program ds_routines_program