re PR fortran/15553 (Array copy operation produces garbage)
PR fortran/15553 * gfortran.dg/array-1.f90: New test. From-SVN: r93049
This commit is contained in:
parent
d2ba8a75ef
commit
c22535f502
|
@ -1,3 +1,8 @@
|
|||
2005-01-07 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
||||
|
||||
PR fortran/15553
|
||||
* gfortran.dg/array-1.f90: New test.
|
||||
|
||||
2005-01-07 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/19283
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
! { dg-do run }
|
||||
! PR 15553 : the array used to be filled with garbage
|
||||
! this problem disappeared between 2004-05-20 and 2004-09-15
|
||||
program arrpack
|
||||
implicit none
|
||||
|
||||
double precision x(10,10)
|
||||
integer i, j
|
||||
|
||||
x = -1
|
||||
do i=1,6
|
||||
do j=1,5
|
||||
x(i,j) = i+j*10
|
||||
end do
|
||||
end do
|
||||
call pack (x, 6, 5)
|
||||
|
||||
if (any(reshape(x(1:10,1:3), (/ 30 /)) &
|
||||
/= (/ 11, 12, 13, 14, 15, 16, &
|
||||
21, 22, 23, 24, 25, 26, &
|
||||
31, 32, 33, 34, 35, 36, &
|
||||
41, 42, 43, 44, 45, 46, &
|
||||
51, 52, 53, 54, 55, 56 /))) call abort ()
|
||||
|
||||
contains
|
||||
|
||||
subroutine pack (arr, ni, nj)
|
||||
integer, intent(in) :: ni, nj
|
||||
double precision, intent(inout) :: arr(:,:)
|
||||
double precision :: tmp(ni,nj)
|
||||
tmp(:,:) = arr(1:ni, 1:nj)
|
||||
call copy (arr, tmp, ni, nj)
|
||||
end subroutine pack
|
||||
|
||||
subroutine copy (dst, src, ni, nj)
|
||||
integer, intent(in) :: ni, nj
|
||||
double precision, intent(out) :: dst(ni, nj)
|
||||
double precision, intent(in) :: src(ni, nj)
|
||||
dst = src
|
||||
end subroutine copy
|
||||
|
||||
end program arrpack
|
Loading…
Reference in New Issue