https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95109

--- Comment #5 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
Reduced testcase:

! { dg-do compile }

module target1
contains
  subroutine foo (n, o, p, q, r, pp)
    integer :: n, o, p, q, r, s, i, j
    integer :: a (2:o)
    integer, pointer :: pp
  !$omp target data device (n + 1) if (n .ne. 6) map (tofrom: n, r)
    !$omp target teams device (n + 1) if (n .ne. 6)map (from: n) &
    !$omp & map (alloc: a(2:o)) num_teams (n + 4) thread_limit (n * 2) &
    !$omp & default(shared) shared(n) private (p) reduction(+:r)
    !$omp distribute parallel do simd if(n.ne.6)default(shared)&
    !$omp & private (p) firstprivate (q) shared (n) reduction (+: r) &
    !$omp & dist_schedule (static, 4) collapse (2) safelen(8) &
    !$omp & num_threads (n + 4) proc_bind (spread) lastprivate (s) &
    !$omp & schedule (static, 8)
      do i = 1, 10
        do j = 1, 10
          r = r + 1
          p = q
          a(2+i*10+j) = p + q
          s = i * 10 + j
        end do
      end do
    !$omp end target teams
  !$omp end target data
  end subroutine
end module

Reply via email to