diff --git a/flang/lib/Evaluate/shape.cpp b/flang/lib/Evaluate/shape.cpp index a1b48135235fa..988d11e92051c 100644 --- a/flang/lib/Evaluate/shape.cpp +++ b/flang/lib/Evaluate/shape.cpp @@ -514,16 +514,10 @@ auto GetShapeHelper::operator()(const Symbol &symbol) const -> Result { [&](const semantics::ProcBindingDetails &binding) { return (*this)(binding.symbol()); }, - [&](const semantics::UseDetails &use) { - return (*this)(use.symbol()); - }, - [&](const semantics::HostAssocDetails &assoc) { - return (*this)(assoc.symbol()); - }, [](const semantics::TypeParamDetails &) { return ScalarShape(); }, [](const auto &) { return Result{}; }, }, - symbol.details()); + symbol.GetUltimate().details()); } auto GetShapeHelper::operator()(const Component &component) const -> Result { diff --git a/flang/lib/Evaluate/variable.cpp b/flang/lib/Evaluate/variable.cpp index 2f8f887a59c7e..6b5f4caeb884b 100644 --- a/flang/lib/Evaluate/variable.cpp +++ b/flang/lib/Evaluate/variable.cpp @@ -269,7 +269,7 @@ static std::optional> SymbolLEN(const Symbol &symbol) { return len; } else if (IsDescriptor(ultimate) && !ultimate.owner().IsDerivedType()) { return Expr{DescriptorInquiry{ - NamedEntity{ultimate}, DescriptorInquiry::Field::Len}}; + NamedEntity{symbol}, DescriptorInquiry::Field::Len}}; } } return std::nullopt;