diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2008-03-28 22:16:29 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2008-03-28 22:16:29 +0000 |
commit | 716aaa593ae2583e36d545fef90c939630152d67 (patch) | |
tree | 75c43d12c78df182ddafa8924b7fb1bebed6391a /gcc | |
parent | fc8bc1753dbf100f1de181992d80f559061711d6 (diff) | |
download | gcc-716aaa593ae2583e36d545fef90c939630152d67.zip gcc-716aaa593ae2583e36d545fef90c939630152d67.tar.gz gcc-716aaa593ae2583e36d545fef90c939630152d67.tar.bz2 |
re PR fortran/35699 (run-time abort writing zero sized section to direct access file)
2008-03-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/35699
* gfortran.dg/direct_io_10.f: New test.
From-SVN: r133700
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/direct_io_10.f | 46 |
2 files changed, 51 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3bd9eab..a42d59f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-03-28 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/35699 + * gfortran.dg/direct_io_10.f: New test. + 2008-03-28 Uros Bizjak <ubizjak@gmail.com> * gcc.target/i386/vectorize6.c: New test. diff --git a/gcc/testsuite/gfortran.dg/direct_io_10.f b/gcc/testsuite/gfortran.dg/direct_io_10.f new file mode 100644 index 0000000..c470272 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/direct_io_10.f @@ -0,0 +1,46 @@ +! { dg-do run } +! pr35699 run-time abort writing zero sized section to direct access file + program directio + call qi0010 ( 10, 1, 2, 3, 4, 9, 2) + end + + subroutine qi0010 (nf10, nf1, nf2, nf3, nf4,nf9, np2) + character(10) bda(nf10) + character(10) bda1(nf10), bval + + integer j_len + bda1(1) = 'x' + do i = 2,10 + bda1(i) = 'x'//bda1(i-1) + enddo + bda = 'unread' + + inquire(iolength = j_len) bda1(nf1:nf10:nf2), bda1(nf4:nf3), + $ bda1(nf2:nf10:nf2) + + open (unit=48, + $ access='direct', + $ status='scratch', + $ recl = j_len, + $ iostat = istat, + $ form='unformatted', + $ action='readwrite') + + write (48,iostat = istat, rec = 3) bda1(nf1:nf10:nf2), + $ bda1(nf4:nf3), bda1(nf2:nf10:nf2) + if ( istat .ne. 0) then + call abort + endif + istat = -314 + + read (48,iostat = istat, rec = np2+1) bda(nf1:nf9:nf2), + $ bda(nf4:nf3), bda(nf2:nf10:nf2) + if ( istat .ne. 0) then + call abort + endif + + do j1 = 1,10 + bval = bda1(j1) + if (bda(j1) .ne. bval) call abort + enddo + end subroutine |