diff options
author | Paul Brook <pbrook@gcc.gnu.org> | 2004-08-31 20:37:43 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2004-08-31 20:37:43 +0000 |
commit | 334ff453eaa61a47ee9b45b273a0a8057697060e (patch) | |
tree | dc7a4ca767a0ceaea51b4b9fda68b21315cdcfa6 /gcc | |
parent | af287697443400b33dbfd2297bdcf63121e7bc86 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/list_read_2.f90 | 25 |
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 |