On 6/7/26 11:37 AM, Harald Anlauf wrote:
Hi Jerry!
Am 03.06.26 um 10:42 PM schrieb Jerry D:
The following implements the last of the EX formatting work. The attached
patch has been regression tested on x86_64. The test case provided round trip
testing to ensure what we read is what we wrote.
OK for mainline?
Works here, LGTM. OK for mainline.
The only missing piece seems to be for list-directed read,
see in particular F2023:13.7.2.3.2 F editing, clause (7).
(Intel and NAG support this.)
Thanks for the great work!
Harald
Thanks Harald. Next on the list will be the list_read part.
Regards,
Jerry
Best regards,
Jerry
---
Fortran: [PR93727] Add EX format READ (read_ex)
Implement read_ex in libgfortran to handle EX edit-descriptor input
per Fortran 2023 13.7.2.3.6. The input field may contain:
* a hexadecimal-significand form (0X<sig>P<exp>) passed directly
to the C strtod/strtold family for exact bit-for-bit conversion;
* any form acceptable for Fw.d input (decimal fallback), including
INF and NAN representations.
For decimal input without a decimal point the d field of the EX.w.d
descriptor adjusts the exponent exactly as for Fw.d. BN/BZ blank
handling and the kP scale factor are also supported via the shared
decimal path.
Assisted by: Claude Sonnet 4.6
PR fortran/93727
libgfortran/ChangeLog:
* io/read.c (read_ex): New function implementing EX format read.
* io/io.h (read_ex): Declare.
* io/transfer.c (formatted_transfer_scalar_read): Add FMT_EX case
dispatching to read_ex.
gcc/testsuite/ChangeLog:
* gfortran.dg/EXformat_4.F90: New test covering EX format read
for kind=4 and 8 (always) and kind=10, 16 (when available):
hex-significand literals, lowercase prefix, negative binary
exponent, decimal fallback, d-field adjustment, INF/NAN, zero
field, and round-trips through write_ex.
---