Consider this simple test case: use omp_lib implicit none integer :: i
!$omp parallel do do i=1,10 call sub(i) end do !$omp end parallel do contains subroutine sub (n) integer :: n print '(A,i3,A,i3)',"loop =",n," | thread =",omp_get_thread_num() call sleep(1) end subroutine end Compiling this with -fopenmp gives the expected results. But when adding -fcheck=recursion, one gets a runtime error: Fortran runtime error: Recursive call to nonrecursive procedure 'sub' -fcheck=recursion is new in 4.5, therefore I'm not sure if one can call this a regression. In any case this bug makes -fcheck=all unusable for OpenMP code. -- Summary: Bogus runtime error with -fopemp -fcheck=recursion Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: wrong-code, openmp Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: janus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42517