https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99740
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |RESOLVED CC| |kargl at gcc dot gnu.org Priority|P3 |P4 Resolution|--- |INVALID --- Comment #2 from kargl at gcc dot gnu.org --- It is not rand(). Modifying your code gives program rantest implicit none integer*4 i real*4 x do i = 1, 7372933 write(11,*) -log(rand(0)) end do x = rand(0) write(*,*) x end % gfcx -o z -O -ffpe-trap=zero,invalid -g a.f && ./z 0.00000000 log() is from your math library, which likely documents that log(0) returns divide-by-zero exception. Nothing here to fix.