aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/reduction6.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/reduction6.f90')
-rw-r--r--gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/reduction6.f9032
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/reduction6.f90 b/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/reduction6.f90
new file mode 100644
index 000000000..9f3ec6ca8
--- /dev/null
+++ b/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/reduction6.f90
@@ -0,0 +1,32 @@
+! { dg-do run }
+
+ integer, dimension (6, 6) :: a
+ character (36) :: c
+ integer nthreads
+ a = 9
+ nthreads = -1
+ call foo (a (2:4, 3:5), nthreads)
+ if (nthreads .eq. 3) then
+ write (c, '(36i1)') a
+ if (c .ne. '999999999999966699966699966699999999') call abort
+ end if
+contains
+ subroutine foo (b, nthreads)
+ use omp_lib
+ integer, dimension (3:, 5:) :: b
+ integer :: err, nthreads
+ b = 0
+ err = 0
+!$omp parallel num_threads (3) reduction (+:b)
+ if (any (b .ne. 0)) then
+!$omp atomic
+ err = err + 1
+ end if
+!$omp master
+ nthreads = omp_get_num_threads ()
+!$omp end master
+ b = 2
+!$omp end parallel
+ if (err .gt. 0) call abort
+ end subroutine foo
+end