5 Commits

Author SHA1 Message Date
Peter Klausler
eac925fb81
[flang][runtime] Better handling of "fort.N" opening errors (#96347)
When a data transfer statement references a unit number that hasn't been
explicitly OPENed, the runtime I/O support library opens a local
"fort.N" file where N is the unit number. If that name exists in the
current working directory but is not a readable or writable file (as
appropriate), the runtime needs to catch the error at the point of the
READ or WRITE statement rather than leaving an open unit in the unit map
without a valid file descriptor.
2024-06-24 10:34:37 -07:00
Peter Klausler
bd815a5489
[flang][runtime][CUDA] Fix build error (#94281)
I broke the build, and now I'm fixing it.
2024-06-03 14:37:46 -07:00
Peter Klausler
a8f2d185b2
[flang][runtime] Resilient opening of anonymous unit (#93876)
When an I/O statement references a unit number that has not been
explicitly opened or predefined, the I/O runtime support library opens a
local "fort.N" file. If this fails, the program crashes, even when the
I/O statement has IOSTAT= or IOMSG= or ERR= control list items. Connect
the dots to enable resilience in these cases.
2024-06-03 14:23:50 -07:00
Slava Zakharin
8ebf741136
[flang][runtime] Prepare enabling PRINT of integer32 for device. (#86247)
This commit adds required files into the offload build closure,
which means adding RT_API_ATTRS and other markers.

The implementation does not work for CUDA yet, because of
std::variant,swap,reverse usage. These issues will be resolved
separately (e.g. by using libcudacxx header files).
2024-03-25 16:01:25 -07:00
Slava Zakharin
00f3454bbe
[flang][runtime] Added pseudo file unit for simplified PRINT. (#86134)
A file unit is emulated via a temporary buffer that accumulates
the output, which is printed out via std::printf at the end
of the IO statement. This implementation will be used for the offload
devices.
2024-03-21 15:12:31 -07:00