[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