re PR libfortran/31915 (Failure with unf_io_convert_3.f90)

2007-05-15  Tobias Burnus  <burnus@net-b.de>

        PR libfortran/31915
        * io/transfer.c (unformatted_read): Use proper size for real(10).
          (unformatted_write): Ditto.

From-SVN: r124741
This commit is contained in:
Tobias Burnus 2007-05-15 12:16:46 +02:00 committed by Tobias Burnus
parent ca0bfd1028
commit 80bcbc8044
2 changed files with 18 additions and 9 deletions

View file

@ -1,3 +1,9 @@
2007-05-15 Tobias Burnus <burnus@net-b.de>
PR libfortran/31915
* io/transfer.c (unformatted_read): Use proper size for real(10).
(unformatted_write): Ditto.
2007-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR fortran/30723

View file

@ -721,12 +721,13 @@ unformatted_read (st_parameter_dt *dtp, bt type,
p = dest;
/* By now, all complex variables have been split into their
constituent reals. For types with padding, we only need to
read kind bytes. We don't care about the contents
of the padding. If we hit a short record, then sz is
adjusted accordingly, making later reads no-ops. */
constituent reals. */
sz = kind;
if (type == BT_REAL || type == BT_COMPLEX)
sz = size_from_real_kind (kind);
else
sz = kind;
for (i=0; i<nelems; i++)
{
read_block_direct (dtp, buffer, &sz);
@ -767,11 +768,13 @@ unformatted_write (st_parameter_dt *dtp, bt type,
p = source;
/* By now, all complex variables have been split into their
constituent reals. For types with padding, we only need to
read kind bytes. We don't care about the contents
of the padding. */
constituent reals. */
if (type == BT_REAL || type == BT_COMPLEX)
sz = size_from_real_kind (kind);
else
sz = kind;
sz = kind;
for (i=0; i<nelems; i++)
{
reverse_memcpy(buffer, p, size);