This is an archive of the discontinued LLVM Phabricator instance.

[flang] Runtime implementation for default derived type formatted I/O
ClosedPublic

Authored by klausler on Jun 17 2021, 1:16 PM.

Details

Summary

This is *not* user-defined derived type I/O, but rather Fortran's
built-in capabilities for using derived type data in I/O lists
and NAMELIST groups.

This feature depends on having the derived type description tables
that are created by Semantics available, passed through compilation
as initialized static objects to which pointers can be targeted
in the descriptors of I/O list items and NAMELIST groups.

NAMELIST processing now handles component references on input
(e.g., "&GROUP x%component = 123 /").

The C++ perspectives of the derived type information records
were transformed into proper classes when it was necessary to add
member functions to them.

The code in Semantics that generates derived type information
was changed to emit derived type components in component order,
not alphabetic order.

Diff Detail

Event Timeline

klausler created this revision.Jun 17 2021, 1:16 PM
klausler requested review of this revision.Jun 17 2021, 1:16 PM
This revision is now accepted and ready to land.Jun 18 2021, 5:27 AM
This revision was landed with ongoing or failed builds.Jun 18 2021, 10:30 AM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptJun 18 2021, 10:30 AM