! Like array_constructor_6.f90, but check constructors that apply
! an elemental function to an array.
! { dg-do run }
program main
  implicit none
  call build (200)
contains
  subroutine build (order)
    integer :: order, i

    call test (order, (/ (abs ((/ i, -i, -i * 2 /)), i = 1, order) /))
    call test (order, abs ((/ ((/ -i, -i, i * 2 /), i = 1, order) /)))
    call test (order, (/ abs ((/ ((/ i, i, -i * 2 /), i = 1, order) /)) /))
  end subroutine build

  subroutine test (order, values)
    integer, dimension (3:) :: values
    integer :: order, i

    if (size (values, dim = 1) .ne. order * 3) call abort
    do i = 1, order
      if (values (i * 3) .ne. i) call abort
      if (values (i * 3 + 1) .ne. i) call abort
      if (values (i * 3 + 2) .ne. i * 2) call abort
    end do
  end subroutine test
end program main
