Skip to content

Commit 2f5e255

Browse files
committed
[Flag] Support passing a function that returns procedure pointer as actual corresponding to a procedure dummy.
1 parent d033799 commit 2f5e255

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

flang/lib/Lower/ConvertCall.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -922,8 +922,10 @@ static PreparedDummyArgument preparePresentUserCallActualArgument(
922922
// Handle procedure arguments (procedure pointers should go through
923923
// prepareProcedurePointerActualArgument).
924924
if (hlfir::isFortranProcedureValue(dummyType)) {
925-
// Procedure pointer actual to procedure dummy.
926-
if (actual.isProcedurePointer()) {
925+
// Procedure pointer or function returns procedure pointer actual to
926+
// procedure dummy.
927+
if (actual.isProcedurePointer() ||
928+
actual.getType().isa<fir::BoxProcType>()) {
927929
actual = hlfir::derefPointersAndAllocatables(loc, builder, actual);
928930
return PreparedDummyArgument{actual, /*cleanups=*/{}};
929931
}

0 commit comments

Comments
 (0)