From eeeca2a666ad76def915c227e38ca5d1e6cdddf5 Mon Sep 17 00:00:00 2001 From: jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Wed, 18 Jan 2006 06:21:28 +0000 Subject: [PATCH] 2006-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/25697 * io/transfer.c (us_read): Detect end of file condition from previous operations and bail out (no need to pre-position). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109870 138bc75d-0d04-0410-961f-82ee72b054a4 --- libgfortran/ChangeLog | 6 ++++++ libgfortran/io/transfer.c | 10 ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index d5e178ed9f31..009b044f51df 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2006-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR libgfortran/25697 + * io/transfer.c (us_read): Detect end of file condition from previous + operations and bail out (no need to pre-position). + 2006-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/25631 diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c index 729883586f87..b5b8df45e9cf 100644 --- a/libgfortran/io/transfer.c +++ b/libgfortran/io/transfer.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. Contributed by Andy Vaught Namelist transfer functions contributed by Paul Thomas @@ -1219,11 +1219,17 @@ us_read (st_parameter_dt *dtp) int n; gfc_offset i; + if (dtp->u.p.current_unit->endfile == AT_ENDFILE) + return; + n = sizeof (gfc_offset); p = salloc_r (dtp->u.p.current_unit->s, &n); if (n == 0) - return; /* end of file */ + { + dtp->u.p.current_unit->endfile = AT_ENDFILE; + return; /* end of file */ + } if (p == NULL || n != sizeof (gfc_offset)) { -- GitLab