! { 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 |