[flang-commits] [flang] [Flang] Add partial support for lowering procedure pointer assignment. (PR #70461)
via flang-commits
flang-commits at lists.llvm.org
Mon Nov 6 10:25:51 PST 2023
================
@@ -479,8 +479,20 @@ static fir::GlobalOp defineGlobal(Fortran::lower::AbstractConverter &converter,
if (global && globalIsInitialized(global))
return global;
- if (Fortran::semantics::IsProcedurePointer(sym))
- TODO(loc, "procedure pointer globals");
+ if (Fortran::semantics::IsProcedurePointer(sym)) {
+ auto boxProcTy{Fortran::lower::getUntypedBoxProcType(builder.getContext())};
+ global = builder.createGlobal(loc, boxProcTy, globalName, linkage,
+ mlir::Attribute{}, isConst, var.isTarget());
+ Fortran::lower::createGlobalInitialization(
+ builder, global, [&](fir::FirOpBuilder &builder) {
+ mlir::Value initVal{builder.create<fir::ZeroOp>(loc, symTy)};
----------------
jeanPerier wrote:
What if the _initial-proc-target_ is something else than NULL?
You can add TODO(loc, """) for things that are not yet handled and might be handled in a later patch).
https://github.com/llvm/llvm-project/pull/70461
More information about the flang-commits
mailing list