From: Tobias Schlüter Date: Fri, 7 Jan 2005 11:56:11 +0000 (+0100) Subject: re PR fortran/15553 (Array copy operation produces garbage) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c22535f5022f7f3ff309923a2e5379138209a2df;p=gcc.git re PR fortran/15553 (Array copy operation produces garbage) PR fortran/15553 * gfortran.dg/array-1.f90: New test. From-SVN: r93049 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 321a27a61eb..24d1b1c153c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-01-07 Tobias Schl"uter + + PR fortran/15553 + * gfortran.dg/array-1.f90: New test. + 2005-01-07 Jakub Jelinek PR tree-optimization/19283 diff --git a/gcc/testsuite/gfortran.dg/array-1.f90 b/gcc/testsuite/gfortran.dg/array-1.f90 new file mode 100644 index 00000000000..6609025a50e --- /dev/null +++ b/gcc/testsuite/gfortran.dg/array-1.f90 @@ -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