[all-commits] [llvm/llvm-project] 205b47: [flang] Fix the trivial type passed as value with ...

PeixinQiao via All-commits all-commits at lists.llvm.org
Mon Oct 17 08:27:58 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 205b47401ed6517cc34e473838e1d307715cc9a4
  Author: Peixin Qiao <qiaopeixin at huawei.com>
  Date:   2022-10-17 (Mon, 17 Oct 2022)

  Changed paths:
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/CallInterface.cpp
    M flang/test/Lower/call-by-value.f90
    M flang/test/Lower/call.f90

  Log Message:
  [flang] Fix the trivial type passed as value with bind(C)

In the callee side, the value cannot be used directly. For example, the
dummy argument is lhs variable or the dummy argument is passed to
another procedure as actual argument.

Fix this by allocating one temporary storage and store the value. Then
map the symbol of dummy argument to the `mlir::Value` of the temporary.

Reviewed By: jeanPerier

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

More information about the All-commits mailing list