diff --git a/flang/lib/Evaluate/check-expression.cpp b/flang/lib/Evaluate/check-expression.cpp index 789e0a2de7d2e..2071b12b1dcf9 100644 --- a/flang/lib/Evaluate/check-expression.cpp +++ b/flang/lib/Evaluate/check-expression.cpp @@ -418,7 +418,10 @@ std::optional> NonPointerInitializationExpr(const Symbol &symbol, int symRank{GetRank(symTS->shape())}; if (IsImpliedShape(symbol)) { if (folded.Rank() == symRank) { - return {std::move(folded)}; + return ArrayConstantBoundChanger{ + std::move(*AsConstantExtents( + context, GetRawLowerBounds(context, NamedEntity{symbol})))} + .ChangeLbounds(std::move(folded)); } else { context.messages().Say( "Implied-shape parameter '%s' has rank %d but its initializer has rank %d"_err_en_US,