[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