This PR changes the build system to use use the sources for the module `omp_lib` and the `omp_lib.h` include file from the `openmp` runtime project and not from a separate copy of these files. This will greatly reduce potential for inconsistencies when adding features to the OpenMP runtime implementation. When the OpenMP subproject is not configured, this PR also disables the corresponding LIT tests with a "REQUIRES" directive at the beginning of the OpenMP test files. --------- Co-authored-by: Valentin Clement (バレンタイン クレメン) <clementval@gmail.com>
50 lines
1.2 KiB
Fortran
50 lines
1.2 KiB
Fortran
! REQUIRES: openmp_runtime
|
|
|
|
! RUN: %python %S/../test_errors.py %s %flang -fopenmp
|
|
|
|
use omp_lib
|
|
implicit none
|
|
integer :: xyz, abc
|
|
real :: reduction_var
|
|
!$omp parallel num_threads(4)
|
|
!$omp single
|
|
print *, "The"
|
|
!$omp taskgroup
|
|
!$omp task
|
|
print *, "almighty"
|
|
!$omp end task
|
|
!$omp task
|
|
print *, "sun"
|
|
!$omp end task
|
|
!$omp end taskgroup
|
|
!$omp end single
|
|
!$omp end parallel
|
|
|
|
!$omp parallel private(xyz)
|
|
!$omp taskgroup allocate(xyz)
|
|
!$omp task
|
|
print *, "The "
|
|
!$omp taskgroup allocate(omp_large_cap_mem_space: abc)
|
|
!$omp task
|
|
print *, "almighty sun"
|
|
!$omp end task
|
|
!$omp end taskgroup
|
|
!$omp end task
|
|
!$omp end taskgroup
|
|
!$omp end parallel
|
|
|
|
!ERROR: PRIVATE clause is not allowed on the TASKGROUP directive
|
|
!$omp taskgroup private(abc)
|
|
!$omp end taskgroup
|
|
|
|
!$omp parallel
|
|
!$omp task
|
|
!$omp taskgroup task_reduction(+ : reduction_var)
|
|
print *, "The "
|
|
!$omp taskgroup task_reduction(.or. : reduction_var) task_reduction(.and. : reduction_var)
|
|
print *, "almighty sun"
|
|
!$omp end taskgroup
|
|
!$omp end taskgroup
|
|
!$omp end task
|
|
!$omp end parallel
|
|
end program |