[Bug libfortran/88411] [9 Regression] Random crashes for ASYNCHRONOUS writes (bad locking?)
tkoenig at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Dec 9 13:16:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88411
--- Comment #6 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
Something glaringly obvious just struck me: The test case
has synchronous writes for a file which is opened asynchronously.
This may or may not have been intended. It is certainly a bug
not to get this right, but at least there is a workaround:
Rewrite the test case as
program gfcbug153
implicit none
integer :: iu, irecl
real :: a(100,20), b(1,3000)
iu = 10
a = 0.
b = 0.
inquire (iolength = irecl) a
open (iu, file="file1.dat", access='direct', &
asynchronous='yes', &
recl=irecl)
write(iu, rec=1,asynchronous="yes") a(:,:)
write(iu, rec=2,asynchronous="yes") a(:,:)
write(iu, rec=3,asynchronous="yes") a(:,:)
close (iu)
inquire (iolength = irecl) b
open (iu, file="file2.dat", access='direct', &
asynchronous='yes', &
recl=irecl)
write(iu, rec=1,asynchronous="yes") b(:,:)
write(iu, rec=2,asynchronous="yes") b(:,:)
write(iu, rec=3,asynchronous="yes") b(:,:)
close (iu)
end program
That appears to work, at least according to the
testing that I did.
More information about the Gcc-bugs
mailing list