12345678910111213141516171819202122232425262728 |
- ! { dg-do run }
- program tasktest
- use omp_lib
- integer :: i, j
- common /tasktest_j/ j
- j = 0
- !$omp parallel private (i)
- i = omp_get_thread_num ()
- if (i.lt.2) then
- !$omp task if (.false.) default(firstprivate)
- call subr (i + 1)
- !$omp end task
- end if
- !$omp end parallel
- if (j.gt.0) call abort
- contains
- subroutine subr (i)
- use omp_lib
- integer :: i, j
- common /tasktest_j/ j
- if (omp_get_thread_num ().ne.(i - 1)) then
- !$omp atomic
- j = j + 1
- end if
- end subroutine subr
- end program tasktest
|