mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			29 lines
		
	
	
		
			575 B
		
	
	
	
		
			Fortran
		
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			575 B
		
	
	
	
		
			Fortran
		
	
	
	
| ! { dg-do run }
 | |
| ! { dg-require-effective-target tls_runtime }
 | |
|   integer, pointer, save :: thr(:)
 | |
| !$omp threadprivate (thr)
 | |
|   integer, target :: s(3), t(3), u(3)
 | |
|   integer :: i
 | |
|   logical :: l
 | |
|   s = 2
 | |
|   t = 7
 | |
|   u = 13
 | |
|   thr => t
 | |
|   l = .false.
 | |
|   i = 0
 | |
| !$omp parallel copyin (thr) reduction(.or.:l) reduction(+:i)
 | |
|   if (any (thr.ne.7)) l = .true.
 | |
|   thr => s
 | |
| !$omp master
 | |
|   thr => u
 | |
| !$omp end master
 | |
| !$omp atomic
 | |
|   thr(1) = thr(1) + 1
 | |
|   i = i + 1
 | |
| !$omp end parallel
 | |
|   if (l) call abort
 | |
|   if (thr(1).ne.14) call abort
 | |
|   if (s(1).ne.1+i) call abort
 | |
|   if (u(1).ne.14) call abort
 | |
| end
 |