rt_gccstream/libgomp/testsuite/libgomp.fortran/pr34020.f90

20 lines
371 B
Fortran

! PR fortran/34020
! { dg-do run }
subroutine atomic_add(lhs, rhs)
real lhs, rhs
!$omp atomic
lhs = rhs + lhs
end
real lhs, rhs
integer i
lhs = 0
rhs = 1
!$omp parallel do num_threads(8) shared(lhs, rhs)
do i = 1, 300000
call atomic_add(lhs, rhs)
enddo
if (lhs .ne. 300000) call abort
end