Using Helgrind (Valgrind-2.2) on IA-32 on r108219 (2005-12-04) version of the GOMP-branch, and this test program goes through with no errors or potential problems reported by that tool.
Using the latest update of the branch (2006-02-06), and 113 errors and 123 possible data races are reported by Helgrind. gfortran-gomp-new -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../gcc/configure --prefix=/usr/local/gomp-new --program-suffix=-gomp-new --enable-threads=posix --enable-languages=c,c++,fortran Thread model: posix gcc version 4.2.0-gomp-20050608-branch 20060206 (experimental) (merged 20060206) gfortran-gomp-new -fopenmp -lgomp -g -fautomatic -O 0 -o multi multi.for valgrind --tool=helgrind --error-limit=no --log-file=multi.txt ./multi PROGRAM MULTI C INTEGER IJK COMMON /IABC/ IJK(100) C$OMP THREADPRIVATE(/IABC/) C INTEGER IC C DO I = 1, 100 IJK( I ) = I END DO C C$OMP PARALLEL COPYIN(/IABC/) C CALL SUBR1 C C$OMP BARRIER C$OMP MASTER IC = 1 PRINT *,IC C$OMP END MASTER C$OMP END PARALLEL C DO I = 301, 400 IJK( I-300 ) = I IF ( MOD(I,10) .EQ. 0 ) PRINT *,I END DO C C$OMP PARALLEL COPYIN(/IABC/) C CALL SUBR1 C$OMP END PARALLEL C STOP END C SUBROUTINE SUBR1 C INTEGER IKL COMMON /ICDE/ IKL(100) C$OMP THREADPRIVATE(/ICDE/) C INTEGER IJK COMMON /IABC/ IJK(100) C$OMP THREADPRIVATE(/IABC/) C C$OMP DO PRIVATE( K ) DO K = 1, 100 IKL( K ) = IJK( K ) END DO C$OMP ENDDO C RETURN END -- Summary: Helgrind (Valgrind) error reports for libgomp Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libgomp AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: magnus_os at yahoo dot se http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26231