From 707d6601976abff4a80f04ad26af7de09e2fbb54 Mon Sep 17 00:00:00 2001 From: tobi Date: Fri, 7 Jan 2005 11:56:11 +0000 Subject: [PATCH] PR fortran/15553 * gfortran.dg/array-1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93049 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/array-1.f90 | 42 +++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/array-1.f90 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 -- 2.11.4.GIT