From 7dd342222b25a4880d083d8fd013a901fb6f1993 Mon Sep 17 00:00:00 2001 From: Thomas Koenig Date: Wed, 20 Dec 2017 20:36:22 +0000 Subject: [PATCH] re PR fortran/83436 (Internal file cannot be accessed by UNFORMATTED data transfer when reading from /dev/urandom) 2017-12-20 Thomas Koenig PR fortran/83436 * gfortran.dg/internal_readwrite_4.f90: New test. From-SVN: r255902 --- gcc/testsuite/ChangeLog | 5 ++++ .../gfortran.dg/internal_readwrite_4.f90 | 30 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/internal_readwrite_4.f90 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f063f26c225..9f564ade9ce 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-12-20 Thomas Koenig + + PR fortran/83436 + * gfortran.dg/internal_readwrite_4.f90: New test. + 2017-12-20 Jakub Jelinek 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 00000000000..cd2e684a456 --- /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 -- 2.30.2