aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/pr27395-1.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/pr27395-1.f90')
-rw-r--r--gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/pr27395-1.f9031
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/pr27395-1.f90 b/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/pr27395-1.f90
new file mode 100644
index 000000000..380a10776
--- /dev/null
+++ b/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.fortran/pr27395-1.f90
@@ -0,0 +1,31 @@
+! PR fortran/27395
+! { dg-do run }
+
+program pr27395_1
+ implicit none
+ integer, parameter :: n=10,m=1001
+ integer :: i
+ integer, dimension(n) :: sumarray
+ call foo(n,m,sumarray)
+ do i=1,n
+ if (sumarray(i).ne.m*i) call abort
+ end do
+end program pr27395_1
+
+subroutine foo(n,m,sumarray)
+ use omp_lib, only : omp_get_thread_num
+ implicit none
+ integer, intent(in) :: n,m
+ integer, dimension(n), intent(out) :: sumarray
+ integer :: i,j
+ sumarray(:)=0
+!$OMP PARALLEL DEFAULT(shared) NUM_THREADS(4)
+!$OMP DO PRIVATE(j,i), REDUCTION(+:sumarray)
+ do j=1,m
+ do i=1,n
+ sumarray(i)=sumarray(i)+i
+ end do
+ end do
+!$OMP END DO
+!$OMP END PARALLEL
+end subroutine foo