[all-commits] [llvm/llvm-project] 7cf160: [flang] Rework handling of non-type-bound user-def...
Peter Klausler via All-commits
all-commits at lists.llvm.org
Thu Apr 13 15:35:44 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7cf1608b4d8f7f4d20c994dd13451efb7c9560b5
https://github.com/llvm/llvm-project/commit/7cf1608b4d8f7f4d20c994dd13451efb7c9560b5
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M flang/include/flang/Common/Fortran.h
M flang/include/flang/Runtime/io-api.h
M flang/include/flang/Semantics/runtime-type-info.h
M flang/include/flang/Semantics/symbol.h
M flang/include/flang/Semantics/tools.h
M flang/lib/Common/Fortran.cpp
M flang/lib/Semantics/check-declarations.cpp
M flang/lib/Semantics/check-io.cpp
M flang/lib/Semantics/check-io.h
M flang/lib/Semantics/resolve-names-utils.cpp
M flang/lib/Semantics/runtime-type-info.cpp
M flang/lib/Semantics/symbol.cpp
M flang/lib/Semantics/tools.cpp
M flang/module/__fortran_type_info.f90
M flang/runtime/CMakeLists.txt
M flang/runtime/descriptor-io.cpp
M flang/runtime/descriptor-io.h
M flang/runtime/format-implementation.h
M flang/runtime/format.h
M flang/runtime/io-api.cpp
M flang/runtime/namelist.cpp
M flang/runtime/namelist.h
A flang/runtime/non-tbp-dio.cpp
A flang/runtime/non-tbp-dio.h
M flang/runtime/type-info.h
M flang/runtime/unit.h
M flang/test/Semantics/typeinfo01.f90
M flang/test/Semantics/typeinfo02.f90
Log Message:
-----------
[flang] Rework handling of non-type-bound user-defined I/O
A fairly recent introduction of runtime I/O APIs called OutputDerivedType()
and InputDerivedType() didn't cover NAMELIST I/O's need to access
non-type-bound generic interfaces for user-defined derived type I/O
when those generic interfaces are defined in some scope other than the
one that defines the derived type.
The patch adds a new data structure shared between lowering
and the runtime that can represent all of the cases that can
arise with non-type-bound defined I/O. It can represent
scopes in which non-type-bound defined I/O generic interfaces
are inaccessible, too, due to IMPORT statements.
The data structure is now an operand to OutputDerivedType() and
InputDerivedType() as well as a data member in the NamelistGroup
structure.
Differential Revision: https://reviews.llvm.org/D148257
More information about the All-commits
mailing list