re PR fortran/15553 (Array copy operation produces garbage)
authorTobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
Fri, 7 Jan 2005 11:56:11 +0000 (12:56 +0100)
committerTobias Schlüter <tobi@gcc.gnu.org>
Fri, 7 Jan 2005 11:56:11 +0000 (12:56 +0100)
PR fortran/15553
* gfortran.dg/array-1.f90: New test.

From-SVN: r93049

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/array-1.f90 [new file with mode: 0644]

index 321a27a61eb0e745a39f4e74da21dac5439dcfdb..24d1b1c153ce05279bae78200042948171aea8ed 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