PR fortran/15553
authortobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Jan 2005 11:56:11 +0000 (11:56 +0000)
committertobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Jan 2005 11:56:11 +0000 (11:56 +0000)
* 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
gcc/testsuite/gfortran.dg/array-1.f90 [new file with mode: 0644]

index 321a27a..24d1b1c 100644 (file)
@@ -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
diff --git a/gcc/testsuite/gfortran.dg/array-1.f90 b/gcc/testsuite/gfortran.dg/array-1.f90
new file mode 100644 (file)
index 0000000..6609025
--- /dev/null
@@ -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