aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2008-01-25 23:40:23 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2008-01-25 23:40:23 +0000
commitc6a4852ec6f7e1268fa87aafcaf7c3e825f7e5d9 (patch)
tree93b12411f8f17c5f8eb015301c3672110b21e52d
parent12d9e9beffd90cfdd7b3715186465099c13ae6ea (diff)
downloadgcc-c6a4852ec6f7e1268fa87aafcaf7c3e825f7e5d9.zip
gcc-c6a4852ec6f7e1268fa87aafcaf7c3e825f7e5d9.tar.gz
gcc-c6a4852ec6f7e1268fa87aafcaf7c3e825f7e5d9.tar.bz2
re PR fortran/34876 (Can't read/write array sections with negative stride not specified)
2008-01-25 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/34876 * gfortran.dg/direct_io_9.f: New test. From-SVN: r131850
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/direct_io_9.f39
2 files changed, 44 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0ea5119..4bb6a97 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/34876
+ * gfortran.dg/direct_io_9.f: New test.
+
2008-01-25 Daniel Franke <franke.daniel@gmail.com>
PR fortran/34661
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 0000000..bdb4045
--- /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
+