Hi Jerry,
Am 26.03.24 um 04:18 schrieb Jerry D:
Hi all,
There has been a bit of discussio on which way to go on this.
I took a look today and this trivial patch gives the behavior concluded
on Fortran Discourse. See the bugzilla for all the relevant information.
Regresion tested on x86-64.
I will do the appropriate changelog.
OK for trunk?
Attached is a new test case and the patch here:
diff --git a/libgfortran/io/file_pos.c b/libgfortran/io/file_pos.c
index 2bc05b293f8..d169961f997 100644
--- a/libgfortran/io/file_pos.c
+++ b/libgfortran/io/file_pos.c
@@ -352,7 +352,6 @@ st_endfile (st_parameter_filepos *fpp)
dtp.common = fpp->common;
memset (&dtp.u.p, 0, sizeof (dtp.u.p));
dtp.u.p.current_unit = u;
- next_record (&dtp, 1);
}
unit_truncate (u, stell (u->s), &fpp->common);
this is OK from my side.
Given the discussion on "dg-do run", wouldn't this be a perfect
example where it is sufficient to run the testcase just once?
The change is in libgfortran, not in the frontend or middle-end.
Thanks for the patch!
Harald