From 5c906e8eb80e9a71be38d41ea594871bad074efb Mon Sep 17 00:00:00 2001
From: pbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 29 Jan 2005 15:45:17 +0000
Subject: [PATCH] 2005-01-29  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/19595
	* io/transfer.c (data_transfer_init): eor requires advance="NO".
testsuite/
	* gfortran.dg/eor_1.f90:  New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94410 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/testsuite/ChangeLog             |  5 +++++
 gcc/testsuite/gfortran.dg/eor_1.f90 | 10 ++++++++++
 libgfortran/ChangeLog               |  5 +++++
 libgfortran/io/transfer.c           |  2 +-
 4 files changed, 21 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/gfortran.dg/eor_1.f90

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index edd525ac2b62..2fc135f3b503 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-01-29  Thomas Koenig  <Thomas.Koenig@online.de>
+
+	PR libfortran/19595
+	* gfortran.dg/eor_1.f90:  New test.
+
 2005-01-29  Steven G. Kargl  <kargls@comcast.net>
 
 	PR fortran/19589
diff --git a/gcc/testsuite/gfortran.dg/eor_1.f90 b/gcc/testsuite/gfortran.dg/eor_1.f90
new file mode 100644
index 000000000000..c61a0b7c87f5
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/eor_1.f90
@@ -0,0 +1,10 @@
+! { dg do-run }
+! PR 19451: The test for advance='NO' with eor used to be reversed.
+program main
+  character*2 c
+  open(12, status='SCRATCH')
+  write(12, '(A)') '123', '456'
+  rewind(12)
+  read(12, '(A2)', advance='NO', eor=100) c
+100 continue
+end program main
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index effa7673313e..be7bfa8f3434 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2005-01-29  Thomas Koenig  <Thomas.Koenig@online.de>
+
+	PR libfortran/19595
+	* io/transfer.c (data_transfer_init): eor requires advance="NO".
+
 2005-01-25  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
 
 	PR libfortran/19524
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index c69d3092ca2e..a55936f9e6c6 100644
--- a/libgfortran/io/transfer.c
+++ b/libgfortran/io/transfer.c
@@ -1041,7 +1041,7 @@ data_transfer_init (int read_flag)
 
   if (read_flag)
     {
-      if (ioparm.eor != 0 && advance_status == ADVANCE_NO)
+      if (ioparm.eor != 0 && advance_status != ADVANCE_NO)
 	generate_error (ERROR_MISSING_OPTION,
 			"EOR specification requires an ADVANCE specification of NO");
 
-- 
GitLab