[all-commits] [llvm/llvm-project] 29d1a4: [flang] Document and use intrinsic subroutine argu...

jeanPerier via All-commits all-commits at lists.llvm.org
Tue Oct 20 05:11:29 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 29d1a494477d78f9c86564b851891702456ddffb
      https://github.com/llvm/llvm-project/commit/29d1a494477d78f9c86564b851891702456ddffb
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2020-10-20 (Tue, 20 Oct 2020)

  Changed paths:
    M flang/include/flang/Evaluate/characteristics.h
    M flang/include/flang/Evaluate/intrinsics.h
    M flang/lib/Evaluate/characteristics.cpp
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Semantics/check-call.cpp
    M flang/lib/Semantics/check-call.h
    M flang/lib/Semantics/expression.cpp
    M flang/test/Semantics/call03.f90

  Log Message:
  -----------
  [flang] Document and use intrinsic subroutine argument intents

Check INTENT(OUT)/INTENT(INOUT) constraints for actual argument
of intrinsic procedure calls.
- Adding a common::Intent field to the IntrinsicDummyArgument
in the intrinsic table.
- Propagating it to the DummyDataObject intent field so that it can
later be used in CheckExplicitDataArg semantic checks.
- Add related tests.
- Fix regression (C846 false error), C846 INTENT(OUT) rule does
  not apply to intrinsic call. Propagate the information that we
  are in an intrinsic call up to CheckExplicitDataArg (that is
  doing this check). Still enforce C846 on intrinsics other than MOVE_ALLOC (for which
  allocatable coarrays are explicitly allowed) since it's not clear it is allowed in all
  intrinsics and allowing this would lead to runtime penalties in the intrinsic runtime.

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




More information about the All-commits mailing list