diff options
author | Bud Davis <bdavis9659@comcast.net> | 2004-09-14 00:56:46 +0000 |
---|---|---|
committer | Bud Davis <bdavis@gcc.gnu.org> | 2004-09-14 00:56:46 +0000 |
commit | c72477d6a6c9da1770910622684d16e7e0bc60a9 (patch) | |
tree | 7ebe078cca9da25f699c5ad71ec58ff3464d3f8d | |
parent | b6acab32f182074d7253fc215d3639227fc4f624 (diff) | |
download | gcc-c72477d6a6c9da1770910622684d16e7e0bc60a9.zip gcc-c72477d6a6c9da1770910622684d16e7e0bc60a9.tar.gz gcc-c72477d6a6c9da1770910622684d16e7e0bc60a9.tar.bz2 |
re PR libfortran/17090 (Runtime I/O error)
2004-09-13 Bud Davis <bdavis9659@comcast.net>
PR fortran/17090
* io/list_read.c (list_formatted_read): Handle trailing spaces
at end of line.
2004-09-13 Bud Davis <bdavis9659@comcast.net>
PR fortran/17090
* gfortran.dg/pr17090.f90: New test.
From-SVN: r87474
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr17090.f90 | 21 | ||||
-rw-r--r-- | libgfortran/ChangeLog | 7 | ||||
-rw-r--r-- | libgfortran/io/list_read.c | 7 |
4 files changed, 39 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b43b488..356701c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-09-13 Bud Davis <bdavis9659@comcast.net> + + PR fortran/17090 + * gfortran.dg/pr17090.f90: New test. + 2004-09-13 Dale Johannesen <dalej@apple.com> * gcc.c-torture/compile/pr17408.c: New test case. diff --git a/gcc/testsuite/gfortran.dg/pr17090.f90 b/gcc/testsuite/gfortran.dg/pr17090.f90 new file mode 100644 index 0000000..44dc5e4 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr17090.f90 @@ -0,0 +1,21 @@ +! pr 17090 Runtime I/O error +! bdavis9659@comcast.net +! 9/12/2004 +! list directed read with spaces between the last data item and the +! eoln cause missed data items. +! this is a libgfortran test case + implicit none + integer i,sum + real a(14) + data sum / 0 / + open(unit=9,status='SCRATCH') + write(9,*)1.0,2.0,3.0,4.0,' ' + write(9,*)5.0,6.0,7.0,8.0,' ' + write(9,*)9.0,10.0,11.0,12.0,13.0,14.0,' ' + rewind(9) + read(9,*)a + do i = 1,14 + sum = sum + a(i) + end do + if (sum.ne.105) call abort + end diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 26a3544..70e1469e 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,10 @@ +2004-09-13 Bud Davis <bdavis9659@comcast.net> + + PR fortran/17090 + + * io/list_read.c (list_formatted_read): Handle trailing spaces + at end of line. + 2004-09-06 Steven G. Kargl <kargls@comcast.net> * io/write.c (output_float): Typo in comment. Remove debugging diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c index f47d473..51767d0 100644 --- a/libgfortran/io/list_read.c +++ b/libgfortran/io/list_read.c @@ -1270,7 +1270,12 @@ list_formatted_read (bt type, void *p, int len) if (at_eol) finish_separator (); else - eat_spaces (); + { + eat_spaces (); + /* trailing spaces prior to end of line */ + if (at_eol) + finish_separator (); + } saved_type = BT_NULL; repeat_count = 1; |