mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			28 lines
		
	
	
		
			615 B
		
	
	
	
		
			Fortran
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			615 B
		
	
	
	
		
			Fortran
		
	
	
	
| ! { dg-do run }
 | |
| 
 | |
| function f1 ()
 | |
|   real :: f1
 | |
|   f1 = 6.5
 | |
|   call sub1
 | |
| contains
 | |
|   subroutine sub1
 | |
|     use omp_lib
 | |
|     logical :: l
 | |
|     l = .false.
 | |
| !$omp parallel firstprivate (f1) num_threads (2) reduction (.or.:l)
 | |
|     l = f1 .ne. 6.5
 | |
|     if (omp_get_thread_num () .eq. 0) f1 = 8.5
 | |
|     if (omp_get_thread_num () .eq. 1) f1 = 14.5
 | |
| !$omp barrier
 | |
|     l = l .or. (omp_get_thread_num () .eq. 0 .and. f1 .ne. 8.5)
 | |
|     l = l .or. (omp_get_thread_num () .eq. 1 .and. f1 .ne. 14.5)
 | |
| !$omp end parallel
 | |
|     if (l) call abort
 | |
|     f1 = -2.5
 | |
|   end subroutine sub1
 | |
| end function f1
 | |
| 
 | |
|   real :: f1
 | |
|   if (f1 () .ne. -2.5) call abort
 | |
| end
 |