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