[all-commits] [llvm/llvm-project] 95f4ca: [flang] Allow restricted specific intrinsic functi...

Peter Klausler via All-commits all-commits at lists.llvm.org
Mon Jul 25 12:20:26 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 95f4ca7f5db623bacc2e34548d39fe5b28d47bad
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2022-07-25 (Mon, 25 Jul 2022)

  Changed paths:
    M flang/include/flang/Evaluate/characteristics.h
    M flang/include/flang/Evaluate/tools.h
    M flang/lib/Evaluate/characteristics.cpp
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Evaluate/tools.cpp
    M flang/lib/Semantics/check-call.cpp
    M flang/lib/Semantics/pointer-assignment.cpp
    M flang/test/Semantics/assign03.f90
    A flang/test/Semantics/assign09.f90
    M flang/test/Semantics/associated.f90
    M flang/test/Semantics/c_f_pointer.f90
    M flang/test/Semantics/call03.f90
    A flang/test/Semantics/procinterface02.f90

  Log Message:
  [flang] Allow restricted specific intrinsic functions as implicitly-interfaced procedure pointer targets

The predicate "CanBeCalledViaImplicitInterface()" was returning false for
restricted specific intrinsic functions (e.g., SIN) because their procedure
characteristics have the elemental attribute; this leads to a bogus semantic
error when one attempts to use them as proc-targets in procedure pointer
assignment statements when the left-hand side of the assignment is a procedure
pointer with an implicit interface.  However, these restricted specific intrinsic
functions have always been allowed as special cases for such usage -- it is
as if they are elemental when it is necessary for them to be so, but not
when it's a problem.

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

More information about the All-commits mailing list