[all-commits] [llvm/llvm-project] b21c24: [flang][runtime] Recognize and handle FINAL subrou...

Peter Klausler via All-commits all-commits at lists.llvm.org
Tue Aug 1 13:47:08 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b21c24c3080394e41db4019be3e646296e7f5b05
      https://github.com/llvm/llvm-project/commit/b21c24c3080394e41db4019be3e646296e7f5b05
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2023-08-01 (Tue, 01 Aug 2023)

  Changed paths:
    M flang/include/flang/Runtime/descriptor.h
    M flang/lib/Semantics/runtime-type-info.cpp
    M flang/module/__fortran_type_info.f90
    M flang/runtime/allocatable.cpp
    M flang/runtime/assign.cpp
    M flang/runtime/derived-api.cpp
    M flang/runtime/derived.cpp
    M flang/runtime/derived.h
    M flang/runtime/descriptor-io.h
    M flang/runtime/descriptor.cpp
    M flang/runtime/pointer.cpp
    M flang/runtime/tools.cpp
    M flang/runtime/tools.h
    M flang/runtime/type-info.cpp
    M flang/runtime/type-info.h
    M flang/test/Semantics/typeinfo01.f90
    M flang/test/Semantics/typeinfo02.f90

  Log Message:
  -----------
  [flang][runtime] Recognize and handle FINAL subroutines with contiguous dummy arrays when data are not so

When a FINAL subroutine is being invoked for a discontiguous array, which can
happen for INTENT(OUT) dummy arguments and for some left-hand side variables
in intrinsic assignment statements, it may be the case that the subroutine
being called was defined with a dummy argument that requires contiguous data.

Extend the derived type descriptions used by the runtime to signify when
a special procedure binding requires contiguity; set the flags accordingly;
check them in the runtime support library, and, when necessary, use a
temporary shallow copy of the finalized array data in the call to the
final subroutine.

Differential Revision: https://reviews.llvm.org/D156760




More information about the All-commits mailing list