aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/list_read_5.f9038
2 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 078c541..b5f1063 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-12-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/25307
+ * gfortran.dg/list_read_5.f90: New test.
+
2005-12-22 Richard Henderson <rth@redhat.com>
* gcc.target/i386/sse-7.c: Use -msse2.
diff --git a/gcc/testsuite/gfortran.dg/list_read_5.f90 b/gcc/testsuite/gfortran.dg/list_read_5.f90
new file mode 100644
index 0000000..f69d1f3
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/list_read_5.f90
@@ -0,0 +1,38 @@
+! { dg-do run }
+! PR25307 Check handling of end-of-file conditions for list directed reads.
+! Prepared by Jerry DeLisle <jvdelisle@gcc.gnu.org>
+program pr25307
+ character(len=10) :: str
+ character(len=10) :: a(5)
+ a=""
+ a(1)="123"
+ a(3)="234"
+ str = '123'
+! Check internal unit
+ i = 0
+ j = 0
+ read( str, *, end=10 ) i,j
+ call abort()
+10 continue
+ if (i.ne.123) call abort()
+ if (j.ne.0) call abort()
+! Check file unit
+ i = 0
+ write(10,'(a)') "123"
+ rewind(10)
+ read(10, *, end=20) i,j
+ call abort()
+20 continue
+ if (i.ne.123) call abort()
+ if (j.ne.0) call abort()
+! Check internal array unit
+ i = 0
+ j = 0
+ k = 0
+ read(a(1:5:2),*, end=30)i,j,k
+ call abort()
+30 continue
+ if (i.ne.123) call abort()
+ if (j.ne.234) call abort()
+ if (k.ne.0) call abort()
+end program pr25307