mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			43 lines
		
	
	
		
			874 B
		
	
	
	
		
			Fortran
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			874 B
		
	
	
	
		
			Fortran
		
	
	
	
| ! { dg-do run }
 | |
|   interface
 | |
|     integer function foo ()
 | |
|     end function
 | |
|     integer function bar ()
 | |
|     end function
 | |
|     integer function baz ()
 | |
|     end function
 | |
|   end interface
 | |
|   procedure(foo), pointer :: ptr
 | |
|   integer :: i
 | |
|   ptr => foo
 | |
| !$omp parallel shared (ptr)
 | |
|   if (ptr () /= 1) call abort
 | |
| !$omp end parallel
 | |
|   ptr => bar
 | |
| !$omp parallel firstprivate (ptr)
 | |
|   if (ptr () /= 2) call abort
 | |
| !$omp end parallel
 | |
| !$omp parallel sections lastprivate (ptr)
 | |
| !$omp section
 | |
|   ptr => foo
 | |
|   if (ptr () /= 1) call abort
 | |
| !$omp section
 | |
|   ptr => bar
 | |
|   if (ptr () /= 2) call abort
 | |
| !$omp section
 | |
|   ptr => baz
 | |
|   if (ptr () /= 3) call abort
 | |
| !$omp end parallel sections
 | |
|   if (ptr () /= 3) call abort
 | |
|   if (.not.associated (ptr, baz)) call abort
 | |
| end
 | |
| integer function foo ()
 | |
|   foo = 1
 | |
| end function
 | |
| integer function bar ()
 | |
|   bar = 2
 | |
| end function
 | |
| integer function baz ()
 | |
|   baz = 3
 | |
| end function
 |