!REQUIRES: openmp_runtime !RUN: %python %S/../test_errors.py %s %flang %openmp_flags -fopenmp -fopenmp-version=60 module m use omp_lib implicit none ! Not in omp_lib yet. integer, parameter :: omp_not_impex = 0 integer, parameter :: omp_import = 1 integer, parameter :: omp_export = 2 integer, parameter :: omp_impex = 3 contains subroutine f00 !$omp taskgraph !ERROR: Only task-generating constructs are allowed inside TASKGRAPH region !$omp parallel !$omp end parallel !$omp end taskgraph end subroutine f01 !$omp taskgraph !$omp task !Non-task-generating constructs are ok if contained in an encountered task. !No diagnostic expected. !$omp parallel !$omp end parallel !$omp end task !$omp end taskgraph end subroutine f02 !$omp taskgraph !ERROR: Transparent replayable tasks are not allowed in a TASKGRAPH region !$omp task transparent !$omp end task !$omp end taskgraph !$omp taskgraph !Not a transparent task. !No diagnostic expected. !$omp task transparent(omp_not_impex) !$omp end task !$omp end taskgraph !$omp taskgraph !Ok: transparent, but not replayable task. !No diagnostic expected. !$omp task replayable(.false.) transparent !$omp end task !$omp end taskgraph end subroutine f03 integer(kind=omp_event_handle_kind) :: event !$omp taskgraph !ERROR: Detachable replayable tasks are not allowed in a TASKGRAPH region !$omp task detach(event) !$omp end task !$omp end taskgraph !$omp taskgraph !Ok: task is detachable, but not replayable. !No diagnostic expected !$omp task detach(event) replayable(.false.) !$omp end task !$omp end taskgraph end subroutine f04 !$omp taskgraph !ERROR: Undeferred replayable tasks are not allowed in a TASKGRAPH region !$omp task if(.false.) !$omp end task !$omp end taskgraph !$omp taskgraph !Ok: task is undeferred, but not replayable. !No diagnostic expected. !$omp task if(.false.) replayable(.false.) !$omp end task !$omp end taskgraph end subroutine f05 integer :: i !$omp taskgraph !ERROR: The NOGROUP clause must be specified on every construct in a TASKGRAPH region that could be enclosed in an implicit TASKGROUP !$omp taskloop do i = 1, 10 enddo !$omp end taskloop !$omp end taskgraph !$omp taskgraph !This also applies to non-replayable constructs !ERROR: The NOGROUP clause must be specified on every construct in a TASKGRAPH region that could be enclosed in an implicit TASKGROUP !$omp taskloop replayable(.false.) do i = 1, 10 enddo !$omp end taskloop !$omp end taskgraph !$omp taskgraph !No diagnostic expected. !$omp taskloop replayable(.false.) nogroup do i = 1, 10 enddo !$omp end taskloop !$omp end taskgraph end end module