URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgomp/] [testsuite/] [libgomp.fortran/] [appendix-a/] [a.19.1.f90] - Rev 735
Compare with Previous | Blame | View Log
! { dg-do run }SUBROUTINE F1(Q)COMMON /DATA/ P, XINTEGER, TARGET :: XINTEGER, POINTER :: PINTEGER QQ=1!$OMP FLUSH! X, P and Q are flushed! because they are shared and accessibleEND SUBROUTINE F1SUBROUTINE F2(Q)COMMON /DATA/ P, XINTEGER, TARGET :: XINTEGER, POINTER :: PINTEGER Q!$OMP BARRIERQ=2!$OMP BARRIER! a barrier implies a flush! X, P and Q are flushed! because they are shared and accessibleEND SUBROUTINE F2INTEGER FUNCTION G(N)COMMON /DATA/ P, XINTEGER, TARGET :: XINTEGER, POINTER :: PINTEGER NINTEGER I, J, SUMI=1SUM = 0P=1!$OMP PARALLEL REDUCTION(+: SUM) NUM_THREADS(2)CALL F1(J)! I, N and SUM were not flushed! because they were not accessible in F1! J was flushed because it was accessibleSUM = SUM + JCALL F2(J)! I, N, and SUM were not flushed! because they were not accessible in f2! J was flushed because it was accessibleSUM = SUM + I + J + P + N!$OMP END PARALLELG = SUMEND FUNCTION GPROGRAM A19COMMON /DATA/ P, XINTEGER, TARGET :: XINTEGER, POINTER :: PINTEGER RESULT, GP => XRESULT = G(10)PRINT *, RESULTIF (RESULT .NE. 30) THENCALL ABORTENDIFEND PROGRAM A19
