diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/direct_io_9.f')
-rw-r--r-- | gcc/testsuite/gfortran.dg/direct_io_9.f | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/direct_io_9.f b/gcc/testsuite/gfortran.dg/direct_io_9.f new file mode 100644 index 000000000..bdb40453a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/direct_io_9.f @@ -0,0 +1,39 @@ +! { dg-do run } +! PR34876 can't read/write zero length array sections +! Test case from PR by Dick Hendrikson + program qi0011 + character(9) bda(10) + character(9) bda1(10) + integer j_len + istat = -314 + + inquire(iolength = j_len) bda1 + + istat = -314 + open (unit=48, + $ status='scratch', + $ access='direct', + $ recl = j_len, + $ iostat = istat, + $ form='unformatted', + $ action='readwrite') + + + if (istat /= 0) call abort + + bda = 'xxxxxxxxx' + bda1 = 'yyyyyyyyy' + write (48,iostat = istat, rec = 10) bda1(4:3) + if ( istat .ne. 0) then + call abort + endif + + istat = -314 + read (48,iostat = istat, rec=10) bda(4:3) + if ( istat .ne. 0) then + call abort + endif + if (any(bda1.ne.'yyyyyyyyy')) call abort + if (any(bda.ne.'xxxxxxxxx')) call abort + end + |