re PR fortran/34876 (Can't read/write array sections with negative stride not specified)
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Fri, 25 Jan 2008 23:40:23 +0000 (23:40 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Fri, 25 Jan 2008 23:40:23 +0000 (23:40 +0000)
2008-01-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/34876
* gfortran.dg/direct_io_9.f: New test.

From-SVN: r131850

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/direct_io_9.f [new file with mode: 0644]

index 0ea5119..4bb6a97 100644 (file)
@@ -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 (file)
index 0000000..bdb4045
--- /dev/null
@@ -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
+