! { dg-do run }
! Test the fix for PR38852 and PR39006 in which LBOUND did not work
! for some arrays with negative strides.
!
! Contributed by Dick Hendrickson  <dick.hendrickson@gmail.com>
!                Clive Page        <clivegpage@googlemail.com>
!            and Mikael Morin      <mikael.morin@tele2.fr>
!
program try_je0031
  integer ida(4)
  real dda(5,5,5,5,5)
  integer, parameter :: nx = 4, ny = 3
  interface
    SUBROUTINE PR38852(IDA,DDA,nf2,nf5,mf2)
      INTEGER IDA(4)
      REAL DDA(5,5,5,5,5)
      TARGET DDA
    END SUBROUTINE
  end interface
  integer :: array1(nx,ny), array2(nx,ny) 
  data array2 / 1,2,3,4, 10,20,30,40, 100,200,300,400 /
  array1 = array2
  call PR38852(IDA,DDA,2,5,-2)
  call PR39006(array1, array2(:,ny:1:-1))
  call mikael         ! http://gcc.gnu.org/ml/fortran/2009-01/msg00342.html
contains
  subroutine PR39006(array1, array2)
    integer, intent(in) :: array1(:,:), array2(:,:)
    integer :: j
    do j = 1, ubound(array2,2)
      if (any (array1(:,j) .ne. array2(:,4-j))) STOP 1
    end do
  end subroutine
end 

SUBROUTINE PR38852(IDA,DDA,nf2,nf5,mf2)
  INTEGER IDA(4)
  REAL DLA(:,:,:,:)
  REAL DDA(5,5,5,5,5)
  POINTER DLA
  TARGET DDA
  DLA => DDA(2:3, 1:3:2, 5:4:-1, NF2, NF5:NF2:MF2)
  IDA = UBOUND(DLA)
  if (any(ida /= 2)) STOP 1
  DLA => DDA(2:3, 1:3:2, 5:4:-1, 2, 5:2:-2)
  IDA = UBOUND(DLA)
  if (any(ida /= 2)) STOP 1
!
! These worked.
!
  DLA => DDA(2:3, 1:3:2, 5:4:-1, 2, 5:2:-2)
  IDA = shape(DLA)
  if (any(ida /= 2)) STOP 1
  DLA => DDA(2:3, 1:3:2, 5:4:-1, 2, 5:2:-2)
  IDA = LBOUND(DLA)
  if (any(ida /= 1)) STOP 1
END SUBROUTINE

subroutine mikael
  implicit none
  call test (1,  3, 3)
  call test (2,  3, 3)
  call test (2, -1, 0)
  call test (1, -1, 0)
contains
  subroutine test (a, b, expect)
    integer :: a, b, expect
    integer :: c(a:b)
    if (ubound (c, 1) .ne. expect) STOP 1
  end subroutine test
end subroutine
