[all-commits] [llvm/llvm-project] c78b52: [flang][runtime] Handle conflicts for derived type...

Slava Zakharin via All-commits all-commits at lists.llvm.org
Thu Jul 27 13:56:32 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c78b528f99ba3824fc939f05cd21ebd53d6e816b
      https://github.com/llvm/llvm-project/commit/c78b528f99ba3824fc939f05cd21ebd53d6e816b
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2023-07-27 (Thu, 27 Jul 2023)

  Changed paths:
    M flang/runtime/assign.cpp
    M flang/runtime/derived.cpp
    M flang/runtime/derived.h

  Log Message:
  -----------
  [flang][runtime] Handle conflicts for derived types with dynamic components.

When creating a temporary for conflicting LHS and RHS we have to deep copy
the dynamic (allocatable, automatic) components from RHS to the temp.
Otherwise, the conflict may still be present between LHS and temp.

gfortran/regression/alloc_comp_assign_1.f90 is an example where the current
runtime code produces wrong result:
https://github.com/llvm/llvm-test-suite/blob/7b5b5dcbf9bdde729a14722eb67f9c3ab01647c7/Fortran/gfortran/regression/alloc_comp_assign_1.f90#L50

Reviewed By: klausler, tblah

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


  Commit: fb7366cab1a4bb237b752f5cfacbdbef3464df9e
      https://github.com/llvm/llvm-project/commit/fb7366cab1a4bb237b752f5cfacbdbef3464df9e
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2023-07-27 (Thu, 27 Jul 2023)

  Changed paths:
    M flang/lib/Evaluate/shape.cpp
    A flang/test/Lower/shape-of-elemental-with-optional-arg.f90

  Log Message:
  -----------
  [flang] Fixed shape computation for elementals with optional dummys.

It looks like a regression after D151737: shape of the elemental
call became rank-0.

Reviewed By: klausler

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


Compare: https://github.com/llvm/llvm-project/compare/32683b231e09...fb7366cab1a4


More information about the All-commits mailing list