aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2006-02-28 02:11:47 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2006-02-28 02:11:47 +0000
commit167f0c7e07a7cd702c966436c8cd6875cceb8697 (patch)
tree528f33b510246cfb0963de8eed07f2cc87ce673d
parent9985dd8aafd954ba667b41ab3816e9da2bb7027f (diff)
downloadgcc-167f0c7e07a7cd702c966436c8cd6875cceb8697.zip
gcc-167f0c7e07a7cd702c966436c8cd6875cceb8697.tar.gz
gcc-167f0c7e07a7cd702c966436c8cd6875cceb8697.tar.bz2
re PR libfortran/26464 (Runtime I/O error/invald argument on READ)
2006-02-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/26464 * gfortran.dg/backspace_5.f: New test. * gfortran.dg/backspace_6.f: New test. From-SVN: r111507
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.dg/backspace_5.f34
-rw-r--r--gcc/testsuite/gfortran.dg/backspace_6.f33
3 files changed, 73 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d0178e2..5246dd9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2006-02-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/26464
+ * gfortran.dg/backspace_5.f: New test.
+ * gfortran.dg/backspace_6.f: New test.
+
2006-02-26 Roger Sayle <roger@eyesopen.com>
* gcc.dg/fold-eqandnot-1.c: New test case.
diff --git a/gcc/testsuite/gfortran.dg/backspace_5.f b/gcc/testsuite/gfortran.dg/backspace_5.f
new file mode 100644
index 0000000..a651a9e
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/backspace_5.f
@@ -0,0 +1,34 @@
+!{ dg-do run }
+! PR26464 File I/O error related to buffering and BACKSPACE
+! Test case derived from case by Dale Ranta.
+! Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ program test
+ integer,parameter :: datasize = 1000
+ dimension idata(datasize)
+ open (11, status="scratch", form="unformatted")
+ idata(1) = -1
+ idata( datasize) = -2
+ write(11)idata
+ idata(1) = -2
+ idata( datasize) = -3
+ write(11)idata
+ idata(1) = -3
+ idata( datasize) = -4
+ write(11)idata
+ idata(1) = -4
+ idata( datasize) = -5
+ write(11)idata
+ read(11,end= 1000 )idata
+ call abort()
+ 1000 continue
+ backspace 11
+ backspace 11
+ backspace 11
+ read(11,end= 1001 )idata
+ if(idata(1).ne.-3 .or. idata(datasize).ne.-4) call abort()
+ stop
+ 1001 continue
+ call abort()
+ 1010 stop
+ end
+ \ No newline at end of file
diff --git a/gcc/testsuite/gfortran.dg/backspace_6.f b/gcc/testsuite/gfortran.dg/backspace_6.f
new file mode 100644
index 0000000..3d9cc3d
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/backspace_6.f
@@ -0,0 +1,33 @@
+!{ dg-do run }
+! PR26464 File I/O error related to buffering and BACKSPACE
+! Test case derived from case by Dale Ranta.
+! Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ program test
+ integer,parameter :: datasize = 5000
+ dimension idata(datasize)
+ open (11, status="scratch", form="unformatted")
+ idata(1) = -1
+ idata(datasize) = -2
+ write(11)idata
+ idata(1) = -2
+ idata(datasize) = -3
+ write(11)idata
+ idata(1) = -3
+ idata(datasize) = -4
+ write(11)idata
+ backspace 11
+ backspace 11
+ idata(1) = -2
+ idata(datasize) = -3
+ write(11)idata
+ read(11,end= 1003 )idata
+ call abort()
+ 1003 continue
+ backspace 11
+ backspace 11
+ read(11,end= 1004 )idata
+ if(idata(1).ne.-2 .or.idata(datasize).ne.-3) call abort()
+ stop
+ 1004 continue
+ end
+ \ No newline at end of file