aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaul Brook <pbrook@gcc.gnu.org>2004-08-31 20:37:43 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2004-08-31 20:37:43 +0000
commit334ff453eaa61a47ee9b45b273a0a8057697060e (patch)
treedc7a4ca767a0ceaea51b4b9fda68b21315cdcfa6 /gcc
parentaf287697443400b33dbfd2297bdcf63121e7bc86 (diff)
downloadgcc-334ff453eaa61a47ee9b45b273a0a8057697060e.zip
gcc-334ff453eaa61a47ee9b45b273a0a8057697060e.tar.gz
gcc-334ff453eaa61a47ee9b45b273a0a8057697060e.tar.bz2
re PR libfortran/16805 (Runtime failure using list directed read from string)
PR libfortran/16805 * io/list_read.c (next_char): Don't signal EOF for internal files. * io/unix.c (mem_alloc_r_at): Don't return NULL for incomplete reads. testsuite/ 2004-08-31 Bud Davis <bdavis9659@comcast.net> * gfortran.dg/list_read_2.f90: New test. From-SVN: r86844
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/list_read_2.f9025
2 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5e8be36..10dd9bf 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-31 Bud Davis <bdavis9659@comcast.net>
+
+ PR libfortran/16805
+ * gfortran.dg/list_read_2.f90: New test.
+
2004-08-31 Mark Mitchell <mark@codesourcery.com>
* g++.dg/abi/key1.C: New test.
diff --git a/gcc/testsuite/gfortran.dg/list_read_2.f90 b/gcc/testsuite/gfortran.dg/list_read_2.f90
new file mode 100644
index 0000000..f60a836
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/list_read_2.f90
@@ -0,0 +1,25 @@
+! { dg-do run }
+! PR16805
+! Test list directed reads from character substrings
+! The IO library was reporting an error rather the end-or-fecord when it
+! got to the end of an internal file record.
+program list_read_2
+ implicit none
+ character*10 a
+ data a /'1234567890'/
+ integer i
+ logical debug
+ data debug /.TRUE./
+ read(a,*)i
+ if (i.ne.1234567890) call abort
+ read(a(1:1),*)i
+ if (i.ne.1) call abort
+ read(a(2:2),*)i
+ if (i.ne.2) call abort
+ read(a(1:5),*)i
+ if (i.ne.12345) call abort
+ read(a(5:10),*)i
+ if (i.ne.567890) call abort
+ read(a(10:10),*)i
+ if (i.ne.0) call abort
+end