Skip to content

Commit 61f97dd

Browse files
committed
[Flang] Lowering Nullify statement for procedure pointer.
1 parent 6c14381 commit 61f97dd

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

flang/lib/Lower/Bridge.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3095,6 +3095,16 @@ class FirConverter : public Fortran::lower::AbstractConverter {
30953095
const Fortran::lower::SomeExpr *expr =
30963096
Fortran::semantics::GetExpr(pointerObject);
30973097
assert(expr);
3098+
if (Fortran::evaluate::IsProcedurePointer(*expr)) {
3099+
Fortran::lower::StatementContext stmtCtx;
3100+
hlfir::Entity pptr = Fortran::lower::convertExprToHLFIR(
3101+
loc, *this, *expr, localSymbols, stmtCtx);
3102+
auto boxTy{Fortran::lower::getUntypedBoxProcType(&getMLIRContext())};
3103+
hlfir::Entity nullBoxProc(
3104+
fir::factory::createNullBoxProc(*builder, loc, boxTy));
3105+
builder->createStoreWithConvert(loc, nullBoxProc, pptr);
3106+
return;
3107+
}
30983108
fir::MutableBoxValue box = genExprMutableBox(loc, *expr);
30993109
fir::factory::disassociateMutableBox(*builder, loc, box);
31003110
}

0 commit comments

Comments
 (0)