! Like array_constructor_6.f90, but check integer(8) iterators.
! { dg-do run }
program main
  integer (kind = 8) :: i, l8, u8, step8
  integer (kind = 4) :: l4, step4
  integer (kind = 8), parameter :: big = 10000000000_8

  l4 = huge (1)
  u8 = l4 + 10_8
  step4 = 2
  call test ((/ (i, i = l4, u8, step4) /), l4 + 0_8, u8, step4 + 0_8)

  l8 = big
  u8 = big * 20
  step8 = big
  call test ((/ (i, i = l8, u8, step8) /), l8, u8, step8)

  u8 = big + 100
  l8 = big
  step4 = -20
  call test ((/ (i, i = u8, l8, step4) /), u8, l8, step4 + 0_8)

  u8 = big * 40
  l8 = big * 20
  step8 = -big * 2
  call test ((/ (i, i = u8, l8, step8) /), u8, l8, step8)

  u8 = big
  l4 = big / 100
  step4 = -big / 500
  call test ((/ (i, i = u8, l4, step4) /), u8, l4 + 0_8, step4 + 0_8)

  u8 = big * 40 + 200
  l4 = 200
  step8 = -big
  call test ((/ (i, i = u8, l4, step8) /), u8, l4 + 0_8, step8)
contains
  subroutine test (a, l, u, step)
    integer (kind = 8), dimension (:), intent (in) :: a
    integer (kind = 8), intent (in) :: l, u, step
    integer (kind = 8) :: i
    integer :: j

    j = 1
    do i = l, u, step
      if (a (j) .ne. i) call abort
      j = j + 1
    end do
    if (size (a, 1) .ne. j - 1) call abort
  end subroutine test
end program main
