blob: 7729c85ea1128c304ce987b023c04687ba8beb18 [file] [edit]
! REQUIRES: openmp_runtime
! RUN: %python %S/../test_errors.py %s %flang_fc1 %openmp_flags -fopenmp-version=52
! OpenMP Version 5.2: 12.5.2
! Various checks for DETACH Clause
program detach01
use omp_lib, only: omp_event_handle_kind
implicit none
real :: e, x
integer(omp_event_handle_kind) :: event_01, event_02(2)
integer(omp_event_handle_kind), pointer :: event_03
type :: t
integer(omp_event_handle_kind) :: event
end type
type(t) :: t_01
!ERROR: The event-handle: `e` must be of type integer(kind=omp_event_handle_kind)
!$omp task detach(e)
x = x + 1
!$omp end task
!ERROR: If a DETACH clause appears on a directive, then the encountering task must not be a FINAL task
!$omp task detach(event_01) final(.false.)
x = x + 1
!$omp end task
!ERROR: A variable: `event_01` that appears in a DETACH clause cannot appear on PRIVATE clause on the same construct
!$omp task detach(event_01) private(event_01)
x = x + 1
!$omp end task
!ERROR: A variable: `event_01` that appears in a DETACH clause cannot appear on FIRSTPRIVATE clause on the same construct
!$omp task detach(event_01) firstprivate(event_01)
x = x + 1
!$omp end task
!ERROR: A variable: `event_01` that appears in a DETACH clause cannot appear on SHARED clause on the same construct
!$omp task detach(event_01) shared(event_01)
x = x + 1
!$omp end task
!ERROR: A variable: `event_01` that appears in a DETACH clause cannot appear on IN_REDUCTION clause on the same construct
!$omp task detach(event_01) in_reduction(+:event_01)
x = x + 1
!$omp end task
!ERROR: A variable that is part of another variable (as an array or structure element) cannot appear in a DETACH clause
!$omp task detach(event_02(1))
x = x + 1
!$omp end task
!ERROR: A variable that is part of another variable (as an array or structure element) cannot appear in a DETACH clause
!$omp task detach(t_01%event)
x = x + 1
!$omp end task
!ERROR: The event-handle: `event_03` must not have the POINTER attribute
!$omp task detach(event_03)
x = x + 1
!$omp end task
end program