@@ -72,7 +72,8 @@ static mlir::Value genScalarValue(Fortran::lower::AbstractConverter &converter,
7272}
7373
7474// / Does this variable have a default initialization?
75- static bool hasDefaultInitialization (const Fortran::semantics::Symbol &sym) {
75+ bool Fortran::lower::hasDefaultInitialization (
76+ const Fortran::semantics::Symbol &sym) {
7677 if (sym.has <Fortran::semantics::ObjectEntityDetails>() && sym.size ())
7778 if (!Fortran::semantics::IsAllocatableOrPointer (sym))
7879 if (const Fortran::semantics::DeclTypeSpec *declTypeSpec = sym.GetType ())
@@ -353,7 +354,7 @@ static mlir::Value genComponentDefaultInit(
353354 // global constructor since this has no runtime cost.
354355 componentValue = fir::factory::createUnallocatedBox (
355356 builder, loc, componentTy, std::nullopt );
356- } else if (hasDefaultInitialization (component)) {
357+ } else if (Fortran::lower:: hasDefaultInitialization (component)) {
357358 // Component type has default initialization.
358359 componentValue = genDefaultInitializerValue (converter, loc, component,
359360 componentTy, stmtCtx);
@@ -556,7 +557,7 @@ static fir::GlobalOp defineGlobal(Fortran::lower::AbstractConverter &converter,
556557 builder.createConvert (loc, symTy, fir::getBase (initVal));
557558 builder.create <fir::HasValueOp>(loc, castTo);
558559 });
559- } else if (hasDefaultInitialization (sym)) {
560+ } else if (Fortran::lower:: hasDefaultInitialization (sym)) {
560561 Fortran::lower::createGlobalInitialization (
561562 builder, global, [&](fir::FirOpBuilder &builder) {
562563 Fortran::lower::StatementContext stmtCtx (
@@ -752,17 +753,15 @@ mustBeDefaultInitializedAtRuntime(const Fortran::lower::pft::Variable &var) {
752753 return true ;
753754 // Local variables (including function results), and intent(out) dummies must
754755 // be default initialized at runtime if their type has default initialization.
755- return hasDefaultInitialization (sym);
756+ return Fortran::lower:: hasDefaultInitialization (sym);
756757}
757758
758759// / Call default initialization runtime routine to initialize \p var.
759- static void
760- defaultInitializeAtRuntime (Fortran::lower::AbstractConverter &converter,
761- const Fortran::lower::pft::Variable &var,
762- Fortran::lower::SymMap &symMap) {
760+ void Fortran::lower::defaultInitializeAtRuntime (
761+ Fortran::lower::AbstractConverter &converter,
762+ const Fortran::semantics::Symbol &sym, Fortran::lower::SymMap &symMap) {
763763 fir::FirOpBuilder &builder = converter.getFirOpBuilder ();
764764 mlir::Location loc = converter.getCurrentLocation ();
765- const Fortran::semantics::Symbol &sym = var.getSymbol ();
766765 fir::ExtendedValue exv = converter.getSymbolExtendedValue (sym, &symMap);
767766 if (Fortran::semantics::IsOptional (sym)) {
768767 // 15.5.2.12 point 3, absent optional dummies are not initialized.
@@ -927,7 +926,8 @@ static void instantiateLocal(Fortran::lower::AbstractConverter &converter,
927926 if (needDummyIntentoutFinalization (var))
928927 finalizeAtRuntime (converter, var, symMap);
929928 if (mustBeDefaultInitializedAtRuntime (var))
930- defaultInitializeAtRuntime (converter, var, symMap);
929+ Fortran::lower::defaultInitializeAtRuntime (converter, var.getSymbol (),
930+ symMap);
931931 if (Fortran::semantics::NeedCUDAAlloc (var.getSymbol ())) {
932932 auto *builder = &converter.getFirOpBuilder ();
933933 mlir::Location loc = converter.getCurrentLocation ();
@@ -1168,7 +1168,8 @@ static void instantiateAlias(Fortran::lower::AbstractConverter &converter,
11681168 // do not try optimizing this to single default initializations of
11691169 // the equivalenced storages. Keep lowering simple.
11701170 if (mustBeDefaultInitializedAtRuntime (var))
1171- defaultInitializeAtRuntime (converter, var, symMap);
1171+ Fortran::lower::defaultInitializeAtRuntime (converter, var.getSymbol (),
1172+ symMap);
11721173}
11731174
11741175// ===--------------------------------------------------------------===//
0 commit comments