OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gfortran.dg/] [array-1.f90] - Diff between revs 149 and 154

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 149 Rev 154
! { dg-do run }
! { dg-do run }
! PR 15553 : the array used to be filled with garbage
! PR 15553 : the array used to be filled with garbage
! this problem disappeared between 2004-05-20 and 2004-09-15
! this problem disappeared between 2004-05-20 and 2004-09-15
program arrpack
program arrpack
  implicit none
  implicit none
  double precision x(10,10)
  double precision x(10,10)
  integer i, j
  integer i, j
  x = -1
  x = -1
  do i=1,6
  do i=1,6
     do j=1,5
     do j=1,5
        x(i,j) = i+j*10
        x(i,j) = i+j*10
     end do
     end do
  end do
  end do
  call pack (x, 6, 5)
  call pack (x, 6, 5)
  if (any(reshape(x(1:10,1:3), (/ 30 /)) &
  if (any(reshape(x(1:10,1:3), (/ 30 /)) &
          /= (/ 11, 12, 13, 14, 15, 16,  &
          /= (/ 11, 12, 13, 14, 15, 16,  &
                21, 22, 23, 24, 25, 26,  &
                21, 22, 23, 24, 25, 26,  &
                31, 32, 33, 34, 35, 36,  &
                31, 32, 33, 34, 35, 36,  &
                41, 42, 43, 44, 45, 46,  &
                41, 42, 43, 44, 45, 46,  &
                51, 52, 53, 54, 55, 56 /))) call abort ()
                51, 52, 53, 54, 55, 56 /))) call abort ()
contains
contains
  subroutine pack (arr, ni, nj)
  subroutine pack (arr, ni, nj)
    integer, intent(in) :: ni, nj
    integer, intent(in) :: ni, nj
    double precision, intent(inout) :: arr(:,:)
    double precision, intent(inout) :: arr(:,:)
    double precision :: tmp(ni,nj)
    double precision :: tmp(ni,nj)
    tmp(:,:) = arr(1:ni, 1:nj)
    tmp(:,:) = arr(1:ni, 1:nj)
    call copy (arr, tmp, ni, nj)
    call copy (arr, tmp, ni, nj)
  end subroutine pack
  end subroutine pack
  subroutine copy (dst, src, ni, nj)
  subroutine copy (dst, src, ni, nj)
    integer, intent(in) :: ni, nj
    integer, intent(in) :: ni, nj
    double precision, intent(out) :: dst(ni, nj)
    double precision, intent(out) :: dst(ni, nj)
    double precision, intent(in)  :: src(ni, nj)
    double precision, intent(in)  :: src(ni, nj)
    dst = src
    dst = src
  end subroutine copy
  end subroutine copy
end program arrpack
end program arrpack
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.