! { dg-do run }

! { dg-additional-sources on_device_arch.c }
  ! { dg-prune-output "command-line option '-fintrinsic-modules-path=.*' is valid for Fortran but not for C" }

! Test tasks with detach clause on an offload device.  Each device
! thread spawns off a chain of tasks, that can then be executed by
! any available thread.

program task_detach_6
  use omp_lib

  integer (kind=omp_event_handle_kind) :: detach_event1, detach_event2
  integer :: x = 0, y = 0, z = 0
  integer :: thread_count

  interface
    integer function on_device_arch_nvptx() bind(C)
    end function on_device_arch_nvptx
  end interface

  !TODO See '../libgomp.c/pr99555-1.c'.
  if (on_device_arch_nvptx () /= 0) then
     call alarm (4, 0); !TODO Until resolved, make sure that we exit quickly, with error status.
     ! { dg-xfail-run-if "PR99555" { offload_device_nvptx } }
  end if

  !$omp target map (tofrom: x, y, z) map (from: thread_count)
    !$omp parallel private (detach_event1, detach_event2)
      !$omp single
	thread_count = omp_get_num_threads ()
      !$omp end single

      !$omp task detach (detach_event1) untied
	!$omp atomic update
	  x = x + 1
      !$omp end task

      !$omp task detach (detach_event2) untied
	!$omp atomic update
	  y = y + 1
	call omp_fulfill_event (detach_event1)
      !$omp end task

      !$omp task untied
	!$omp atomic update
	  z = z + 1
	call omp_fulfill_event (detach_event2)
      !$omp end task
    !$omp end parallel
  !$omp end target

  if (x /= thread_count) stop 1
  if (y /= thread_count) stop 2
  if (z /= thread_count) stop 3
end program
