mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			28 lines
		
	
	
		
			561 B
		
	
	
	
		
			Fortran
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			561 B
		
	
	
	
		
			Fortran
		
	
	
	
| ! { 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
 |