diff options
author | Thomas Koenig <tkoenig@gcc.gnu.org> | 2017-12-20 20:36:22 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2017-12-20 20:36:22 +0000 |
commit | 7dd342222b25a4880d083d8fd013a901fb6f1993 (patch) | |
tree | 2cef2e5e09c3938fd255864b725da8da835db8dc /gcc | |
parent | 442db27632e461ace26b61e968dfd8e7ab085e38 (diff) | |
download | gcc-7dd342222b25a4880d083d8fd013a901fb6f1993.zip gcc-7dd342222b25a4880d083d8fd013a901fb6f1993.tar.gz gcc-7dd342222b25a4880d083d8fd013a901fb6f1993.tar.bz2 |
re PR fortran/83436 (Internal file cannot be accessed by UNFORMATTED data transfer when reading from /dev/urandom)
2017-12-20 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/83436
* gfortran.dg/internal_readwrite_4.f90: New test.
From-SVN: r255902
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/internal_readwrite_4.f90 | 30 |
2 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f063f26..9f564ad 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-12-20 Thomas Koenig <tkoenig@gcc.gnu.org> + + PR fortran/83436 + * gfortran.dg/internal_readwrite_4.f90: New test. + 2017-12-20 Jakub Jelinek <jakub@redhat.com> PR ipa/83506 diff --git a/gcc/testsuite/gfortran.dg/internal_readwrite_4.f90 b/gcc/testsuite/gfortran.dg/internal_readwrite_4.f90 new file mode 100644 index 0000000..cd2e684 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/internal_readwrite_4.f90 @@ -0,0 +1,30 @@ +! { dg-do run } +! PR 83436 - this used to cause an error. +! Original test case by Daan van Vugt. +module mod_random_seed + implicit none +contains + !> Read an int from /dev/urandom + subroutine read_urandom_int(seed, ierr) + implicit none + integer, intent(out) :: seed + integer, intent(out) :: ierr + integer :: un + character(len=80) :: restart_file + write(restart_file,'(A,A)') 'jorek', '_restart.h5' + + open(newunit=un, file="/dev/urandom", access="stream", & + form="unformatted", action="read", status="old", iostat=ierr) + if (ierr == 0) then + read(un) seed + close(un) + end if + end subroutine read_urandom_int +end module mod_random_seed + +program test_random_seed + use mod_random_seed + implicit none + integer :: seed, ierr + call read_urandom_int(seed, ierr) +end program test_random_seed |