xref: /llvm-project/flang/test/Semantics/OpenMP/taskgroup01.f90 (revision 58f9c4fc0055821d88869aafd49e0424b1070a79)
1fb5fd2d8SMichael Klemm! REQUIRES: openmp_runtime
2fb5fd2d8SMichael Klemm
300ab44eeSKrzysztof Parzyszek! RUN: %python %S/../test_errors.py %s %flang %openmp_flags -fopenmp-version=50
43323a4bdSKiran Chandramohan
53323a4bdSKiran Chandramohanuse omp_lib
63323a4bdSKiran Chandramohan  implicit none
73323a4bdSKiran Chandramohan  integer :: xyz, abc
83323a4bdSKiran Chandramohan  real :: reduction_var
93323a4bdSKiran Chandramohan  !$omp parallel num_threads(4)
103323a4bdSKiran Chandramohan    !$omp single
113323a4bdSKiran Chandramohan      print *, "The"
123323a4bdSKiran Chandramohan    !$omp taskgroup
133323a4bdSKiran Chandramohan      !$omp task
143323a4bdSKiran Chandramohan      print *, "almighty"
153323a4bdSKiran Chandramohan      !$omp end task
163323a4bdSKiran Chandramohan      !$omp task
173323a4bdSKiran Chandramohan      print *, "sun"
183323a4bdSKiran Chandramohan      !$omp end task
193323a4bdSKiran Chandramohan    !$omp end taskgroup
203323a4bdSKiran Chandramohan    !$omp end single
213323a4bdSKiran Chandramohan  !$omp end parallel
223323a4bdSKiran Chandramohan
233323a4bdSKiran Chandramohan  !$omp parallel private(xyz)
243323a4bdSKiran Chandramohan    !$omp taskgroup allocate(xyz)
253323a4bdSKiran Chandramohan      !$omp task
263323a4bdSKiran Chandramohan        print *, "The "
273323a4bdSKiran Chandramohan        !$omp taskgroup allocate(omp_large_cap_mem_space: abc)
283323a4bdSKiran Chandramohan          !$omp task
293323a4bdSKiran Chandramohan          print *, "almighty sun"
303323a4bdSKiran Chandramohan          !$omp end task
313323a4bdSKiran Chandramohan        !$omp end taskgroup
323323a4bdSKiran Chandramohan      !$omp end task
333323a4bdSKiran Chandramohan    !$omp end taskgroup
343323a4bdSKiran Chandramohan  !$omp end parallel
353323a4bdSKiran Chandramohan
363323a4bdSKiran Chandramohan  !ERROR: PRIVATE clause is not allowed on the TASKGROUP directive
373323a4bdSKiran Chandramohan  !$omp taskgroup private(abc)
383323a4bdSKiran Chandramohan  !$omp end taskgroup
393323a4bdSKiran Chandramohan
403323a4bdSKiran Chandramohan  !$omp parallel
413323a4bdSKiran Chandramohan    !$omp task
423323a4bdSKiran Chandramohan      !$omp taskgroup task_reduction(+ : reduction_var)
433323a4bdSKiran Chandramohan          print *, "The "
44*58f9c4fcSKrzysztof Parzyszek  !ERROR: The type of 'reduction_var' is incompatible with the reduction operator.
45*58f9c4fcSKrzysztof Parzyszek  !ERROR: The type of 'reduction_var' is incompatible with the reduction operator.
463323a4bdSKiran Chandramohan        !$omp taskgroup task_reduction(.or. : reduction_var) task_reduction(.and. : reduction_var)
473323a4bdSKiran Chandramohan          print *, "almighty sun"
483323a4bdSKiran Chandramohan        !$omp end taskgroup
493323a4bdSKiran Chandramohan      !$omp end taskgroup
503323a4bdSKiran Chandramohan    !$omp end task
513323a4bdSKiran Chandramohan  !$omp end parallel
523323a4bdSKiran Chandramohanend program
53