[all-commits] [llvm/llvm-project] 5ea0ba: [flang] Enforce more restrictions on I/O data list...
Peter Klausler via All-commits
all-commits at lists.llvm.org
Fri Dec 2 16:11:08 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 5ea0ba2c13af3c6c8e68701b00695f0f0481bed0
https://github.com/llvm/llvm-project/commit/5ea0ba2c13af3c6c8e68701b00695f0f0481bed0
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2022-12-02 (Fri, 02 Dec 2022)
Changed paths:
M flang/include/flang/Semantics/semantics.h
M flang/include/flang/Semantics/tools.h
M flang/lib/Semantics/check-io.cpp
M flang/lib/Semantics/check-io.h
M flang/lib/Semantics/resolve-names.cpp
M flang/lib/Semantics/tools.cpp
M flang/test/Semantics/io12.f90
A flang/test/Semantics/io14.f90
A flang/test/Semantics/io15.f90
M flang/test/Semantics/symbol11.f90
Log Message:
-----------
[flang] Enforce more restrictions on I/O data list items
12.6.3p5 requires an I/O data list item to have a defined I/O procedure
if it is polymorphic. (We could defer this checking to the runtime,
but no other Fortran compiler does so, and we would also have to be
able to catch the case of an allocatable or pointer direct component
in the absence of a defined I/O subroutine.)
Also includes a patch to name resolution that ensures that a
SELECT TYPE construct entity is polymorphic in the domain of a
CLASS IS guard.
Also ensures that non-defined I/O of types with PRIVATE components
is caught.
Differential Revision: https://reviews.llvm.org/D139050
More information about the All-commits
mailing list