aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Semantics/pointer-assignment.cpp
diff options
context:
space:
mode:
authorPeter Klausler <pklausler@nvidia.com>2022-02-08 13:49:40 -0800
committerPeter Klausler <pklausler@nvidia.com>2022-02-15 09:39:34 -0800
commit7763c01401482bc93cac768623a2b6eaf8476637 (patch)
tree110985ea7583a6115f890ec8e66f4c5dc44d9afa /flang/lib/Semantics/pointer-assignment.cpp
parent3d85424096ff1e20ca735cbe455870cea7ed098f (diff)
downloadllvm-7763c01401482bc93cac768623a2b6eaf8476637.zip
llvm-7763c01401482bc93cac768623a2b6eaf8476637.tar.gz
llvm-7763c01401482bc93cac768623a2b6eaf8476637.tar.bz2
[flang] Accept pointer assignment w/ remapping to function result
When a pointer assignment with bounds remapping has a function reference as its right-hand side, don't check for array conformance. Differential Revision: https://reviews.llvm.org/D119845
Diffstat (limited to 'flang/lib/Semantics/pointer-assignment.cpp')
-rw-r--r--flang/lib/Semantics/pointer-assignment.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/flang/lib/Semantics/pointer-assignment.cpp b/flang/lib/Semantics/pointer-assignment.cpp
index 0fe8643..2b065253 100644
--- a/flang/lib/Semantics/pointer-assignment.cpp
+++ b/flang/lib/Semantics/pointer-assignment.cpp
@@ -172,7 +172,8 @@ bool PointerAssignmentChecker::Check(const evaluate::FunctionRef<T> &f) {
const auto *frTypeAndShape{funcResult->GetTypeAndShape()};
CHECK(frTypeAndShape);
if (!lhsType_->IsCompatibleWith(context_.messages(), *frTypeAndShape,
- "pointer", "function result", false /*elemental*/,
+ "pointer", "function result",
+ isBoundsRemapping_ /*omit shape check*/,
evaluate::CheckConformanceFlags::BothDeferredShape)) {
return false; // IsCompatibleWith() emitted message
}