[all-commits] [llvm/llvm-project] 56c81d: [flang][lowering] handle MERGE with different FSOU...

Valentin Clement (バレンタイン クレメン) via All-commits all-commits at lists.llvm.org
Fri Jun 24 12:05:32 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 56c81d2554baa208ca697b3ea958613d48a7b963
  Author: Valentin Clement <clementval at gmail.com>
  Date:   2022-06-24 (Fri, 24 Jun 2022)

  Changed paths:
    M flang/lib/Lower/IntrinsicCall.cpp
    M flang/test/Lower/Intrinsics/merge.f90

  Log Message:
  [flang][lowering] handle MERGE with different FSOURCE and TSOURCE types

In merge FSOURCE and TSOURCE must have the same Fortran dynamic types,
but this does not imply that FSOURCE and TSOURCE will be lowered to the
same MLIR types. For instance, TSOURCE may be a character expression
with a compile type constant length (!fir.char<1,4>) while FSOURCE may
have dynamic length (!fir.char<1,?>).

Cast FSOURCE to TSOURCE MLIR types to handle these cases.

This patch is part of the upstreaming effort from fir-dev branch.

Reviewed By: PeteSteinfeld

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

Co-authored-by: Jean Perier <jperier at nvidia.com>

More information about the All-commits mailing list