! { dg-do compile } ! { dg-options "-fopenmp" } program p use iso_c_binding, only: c_intptr_t implicit none integer, parameter :: omp_event_handle_kind = c_intptr_t type dt integer(omp_event_handle_kind) :: f end type integer(omp_event_handle_kind) :: x(1) type(dt) :: y !$omp task detach(x) ! { dg-error "'x' at \\\(1\\\) should be a scalar of type integer\\\(kind=omp_event_handle_kind\\\)" } !$omp end task !$omp task detach(x(1)) ! { dg-error "The event handle at \\\(1\\\) must not be an array element" } !$omp end task !$omp task detach(y) ! { dg-error "'y' at \\\(1\\\) should be a scalar of type integer\\\(kind=omp_event_handle_kind\\\)" } !$omp end task !$omp task detach(y%f) ! { dg-error "The event handle at \\\(1\\\) must not be part of a derived type or class" } !$omp end task end program