[all-commits] [llvm/llvm-project] bc699e: [flang] prevent rewrite of CMPLX with dynamically ...

jeanPerier via All-commits all-commits at lists.llvm.org
Wed Feb 2 10:53:55 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: bc699ed0bfaf82700f02fab6a27bdcaad2396f00
      https://github.com/llvm/llvm-project/commit/bc699ed0bfaf82700f02fab6a27bdcaad2396f00
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2022-02-02 (Wed, 02 Feb 2022)

  Changed paths:
    M flang/include/flang/Evaluate/tools.h
    M flang/lib/Evaluate/fold-complex.cpp
    M flang/lib/Evaluate/tools.cpp

  Log Message:
  -----------
  [flang] prevent rewrite of CMPLX with dynamically optional Y argument

CMPLX was always rewritten as a complex constructor, but the second operand
of a complex constructor cannot be dynamically absent (i.e., a
disassociated pointer, an unallocated allocatable or an absent OPTIONAL
dummy argument), while the second argument of CMPLX can be dynamically
absent.

To avoid having to generate branches in complex constructor lowering
when Y is a pointer, keep the distinction between CMPLX and a complex
constructor when Y is a pointer, an allocatable, or an OPTIONAL entity.

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




More information about the All-commits mailing list