• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1! RUN: %llvmgcc -S %s
2! PR2437
3program main
4  implicit none
5  call build (77)
6contains
7  subroutine build (order)
8    integer :: order, i, j
9
10
11    call test (1, order, 3,  (/ (i, i = 1, order, 3) /))
12    call test (order, 1, -3, (/ (i, i = order, 1, -3) /))
13
14    do j = -10, 10
15      call test (order + j, order, 5,  (/ (i, i = order + j, order, 5) /))
16      call test (order + j, order, -5, (/ (i, i = order + j, order, -5) /))
17    end do
18
19  end subroutine build
20
21  subroutine test (from, to, step, values)
22    integer, dimension (:) :: values
23    integer :: from, to, step, last, i
24
25    last = 0
26    do i = from, to, step
27      last = last + 1
28      if (values (last) .ne. i) call abort
29    end do
30    if (size (values, dim = 1) .ne. last) call abort
31  end subroutine test
32end program main
33