[patch, libgfortran] PR107031 - endfile truncates file at wrong position
Harald Anlauf
anlauf@gmx.de
Tue Mar 26 17:43:02 GMT 2024
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
More information about the Fortran
mailing list