This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PR 15553: Add testcase


PR 15553 is an issue that disappeared, but which we assumed to still be
present, because I had posted a bogus reduced testcase.  For this bug has been
fixed I added the attached testcase (derived from the original testcase) to
the testsuite, to make sure that we don't regress.

Apologies,
- Tobi

2005-01-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15553
	* gfortran.dg/array-1.f90: New test.

! { 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]