! { dg-do run } ! { dg-options "-O2" } ! { dg-additional-sources taskloop-4-a.f90 } module m_taskloop4 implicit none (type, external) integer :: v, u(0:63) contains integer function test (a, b, c, d, fn, num_tasks, min_iters, max_iters) integer, value :: a, b, c, d interface subroutine fn (n1, n2, n3, n4) integer, value :: n1, n2, n3, n4 end end interface integer :: num_tasks, min_iters, max_iters integer :: i, t t = 0 u = 0 v = 0 call fn (a, b, c, d) min_iters = 0 max_iters = 0 num_tasks = v if (v /= 0) then min_iters = u(0) max_iters = u(0) t = u(0) do i = 1, v - 1 if (min_iters > u(i)) & min_iters = u(i) if (max_iters < u(i)) & max_iters = u(i) t = t + u(i) end do end if test = t end end module