Skip to content

Commit 413eafd

Browse files
Ignore rank support
1 parent d285ded commit 413eafd

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

flang/lib/Evaluate/call.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,9 @@ static void DetermineCopyInOutArgument(
307307
bool dummyIsAssumedRank{dummyObj->type.attrs().test(
308308
characteristics::TypeAndShape::Attr::AssumedRank)};
309309
bool dummyIsArray{dummyIsAssumedRank || dummyObj->type.Rank() > 0};
310-
if (!actualIsArray || !dummyIsArray) {
310+
bool treatDummyScalarAsArray{dummyObj->type.Rank() == 0 &&
311+
dummyObj->ignoreTKR.test(common::IgnoreTKR::Rank)};
312+
if (!actualIsArray || !(dummyIsArray || treatDummyScalarAsArray)) {
311313
return;
312314
}
313315

@@ -335,6 +337,7 @@ static void DetermineCopyInOutArgument(
335337
bool dummyIsAssumedSize{dummyObj->type.attrs().test(
336338
characteristics::TypeAndShape::Attr::AssumedSize)};
337339
bool dummyNeedsContiguity{dummyIsExplicitShape || dummyIsAssumedSize ||
340+
treatDummyScalarAsArray ||
338341
dummyObj->attrs.test(characteristics::DummyDataObject::Attr::Contiguous)};
339342
if (!actualTreatAsContiguous && dummyNeedsContiguity) {
340343
setCopyIn();

0 commit comments

Comments
 (0)