! 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 (l4) 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