aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2013-03-24 11:16:33 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2013-03-24 11:16:33 +0100
commita73421c460287b7a1b9f0c35d9fe7eacd0e51832 (patch)
tree2aa4fa65d4f5842c39a5a2a11f7d5736b63fad1a
parentb01819be5d7c47c4682dbb250c124e58bd2c1c9e (diff)
downloadgcc-a73421c460287b7a1b9f0c35d9fe7eacd0e51832.zip
gcc-a73421c460287b7a1b9f0c35d9fe7eacd0e51832.tar.gz
gcc-a73421c460287b7a1b9f0c35d9fe7eacd0e51832.tar.bz2
re PR libfortran/56696 (Formatted (list-directed) input fails to signal end of record)
2013-03-24 Tobias Burnus <burnus@net-b.de> PR fortran/56696 * io/list_read.c (read_real): Fix EOF diagnostic. 2013-03-24 Tobias Burnus <burnus@net-b.de> PR fortran/56696 * gfortran.dg/eof_5.f90: New. From-SVN: r197019
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/eof_5.f9021
-rw-r--r--libgfortran/ChangeLog5
-rw-r--r--libgfortran/io/list_read.c1
4 files changed, 31 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 88a14e4..8e39514 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2013-03-24 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/56696
+ * gfortran.dg/eof_5.f90: New.
+
2013-03-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
* gcc.c-torture/execute/builtins/builtins.exp: Sort targets
diff --git a/gcc/testsuite/gfortran.dg/eof_5.f90 b/gcc/testsuite/gfortran.dg/eof_5.f90
new file mode 100644
index 0000000..88671ba
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/eof_5.f90
@@ -0,0 +1,21 @@
+! { dg-do run }
+!
+! PR fortran/56696
+!
+! Contributed by Keith Refson
+!
+
+program iotest
+ character(len=258) :: inp = ' 1.0 1.0 1.0'
+ character(len=7) :: inp2 = '1 2 3 4'
+ integer :: ios
+ real :: a1, a2, a3, a4
+
+ read(inp2,*,iostat=ios) a1, a2, a3, a4
+ if (ios /= 0) call abort ()
+
+ read(inp,*,iostat=ios) a1, a2, a3, a4
+ if (ios == 0) call abort ()
+! write(*,*) 'IOSTAT=',ios
+end program iotest
+
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 877d2d0..865725f 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2013-03-24 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/56696
+ * io/list_read.c (read_real): Fix EOF diagnostic.
+
2013-03-20 Tilo Schwarz <tilo@tilo-schwarz.de>
PR libfortran/51825
diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c
index aa7c8c0..e7ae98f 100644
--- a/libgfortran/io/list_read.c
+++ b/libgfortran/io/list_read.c
@@ -1433,7 +1433,6 @@ read_real (st_parameter_dt *dtp, void * dest, int length)
goto got_sign;
CASE_SEPARATORS:
- case EOF:
unget_char (dtp, c); /* Single null. */
eat_separator (dtp);
return;