]> git.ipfire.org Git - thirdparty/gcc.git/commit
Implement CONVERT specifier for OPEN.
authorThomas Koenig <tkoenig@gcc.gnu.org>
Sun, 9 Jan 2022 15:35:21 +0000 (16:35 +0100)
committerJakub Jelinek <jakub@redhat.com>
Tue, 11 Jan 2022 22:49:52 +0000 (23:49 +0100)
commit9840285d877c5820d75d1347fc2a4f176ab31b11
treed26cdaba1d95d45635a068634a0b4285e3c1c813
parente79f6e61d5849408c3137dbfa5d49e7066f9df7b
Implement CONVERT specifier for OPEN.

This patch, based on Jakub's work, implements the CONVERT
specifier for the power-ieee128 brach.  It allows specifying
the conversion as r16_ieee,big_endian and the other way around,
based on a table.  Setting the conversion via environment
variable and via program option does not yet work.

gcc/ChangeLog:

* flag-types.h (enum gfc_convert): Add flags for
conversion.

gcc/fortran/ChangeLog:

* libgfortran.h (unit_convert): Add flags.

libgfortran/ChangeLog:

* Makefile.in: Regenerate.
* io/file_pos.c (unformatted_backspace): Mask off
R16 parts for convert.
* io/inquire.c (inquire_via_unit): Add cases for
R16 parts.
* io/open.c (st_open): Add cases for R16 conversion.
* io/transfer.c (unformatted_read): Adjust for R16 conversions.
(unformatted_write): Likewise.
(us_read): Mask of R16 bits.
(data_transfer_init): Likewiese.
(write_us_marker): Likewise.
gcc/flag-types.h
gcc/fortran/libgfortran.h
libgfortran/Makefile.in
libgfortran/io/file_pos.c
libgfortran/io/inquire.c
libgfortran/io/open.c
libgfortran/io/transfer.c