diff options
Diffstat (limited to 'flang/lib/Lower/ConvertArrayConstructor.cpp')
| -rw-r--r-- | flang/lib/Lower/ConvertArrayConstructor.cpp | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/flang/lib/Lower/ConvertArrayConstructor.cpp b/flang/lib/Lower/ConvertArrayConstructor.cpp index 341fad9a5e43..3c43cd20eb08 100644 --- a/flang/lib/Lower/ConvertArrayConstructor.cpp +++ b/flang/lib/Lower/ConvertArrayConstructor.cpp @@ -438,7 +438,7 @@ public: void pushValue(mlir::Location loc, fir::FirOpBuilder &builder, hlfir::Entity value) { - return std::visit( + return Fortran::common::visit( [&](auto &impl) { return impl.pushValue(loc, builder, value); }, implVariant); } @@ -446,7 +446,7 @@ public: mlir::Value startImpliedDo(mlir::Location loc, fir::FirOpBuilder &builder, mlir::Value lower, mlir::Value upper, mlir::Value stride) { - return std::visit( + return Fortran::common::visit( [&](auto &impl) { return impl.startImpliedDo(loc, builder, lower, upper, stride); }, @@ -455,13 +455,13 @@ public: hlfir::Entity finishArrayCtorLowering(mlir::Location loc, fir::FirOpBuilder &builder) { - return std::visit( + return Fortran::common::visit( [&](auto &impl) { return impl.finishArrayCtorLowering(loc, builder); }, implVariant); } void startImpliedDoScope(llvm::StringRef doName, mlir::Value indexValue) { - std::visit( + Fortran::common::visit( [&](auto &impl) { return impl.startImpliedDoScope(doName, indexValue); }, @@ -469,8 +469,8 @@ public: } void endImpliedDoScope() { - std::visit([&](auto &impl) { return impl.endImpliedDoScope(); }, - implVariant); + Fortran::common::visit([&](auto &impl) { return impl.endImpliedDoScope(); }, + implVariant); } private: @@ -612,16 +612,17 @@ ArrayCtorAnalysis::ArrayCtorAnalysis( arrayValueListStack.pop_back_val(); for (const Fortran::evaluate::ArrayConstructorValue<T> &acValue : *currentArrayValueList) - std::visit(Fortran::common::visitors{ - [&](const Fortran::evaluate::ImpliedDo<T> &impledDo) { - arrayValueListStack.push_back(&impledDo.values()); - localNumberOfImpliedDo++; - }, - [&](const Fortran::evaluate::Expr<T> &expr) { - localNumberOfExpr++; - anyArrayExpr = anyArrayExpr || expr.Rank() > 0; - }}, - acValue.u); + Fortran::common::visit( + Fortran::common::visitors{ + [&](const Fortran::evaluate::ImpliedDo<T> &impledDo) { + arrayValueListStack.push_back(&impledDo.values()); + localNumberOfImpliedDo++; + }, + [&](const Fortran::evaluate::Expr<T> &expr) { + localNumberOfExpr++; + anyArrayExpr = anyArrayExpr || expr.Rank() > 0; + }}, + acValue.u); anyImpliedDo = anyImpliedDo || localNumberOfImpliedDo > 0; if (localNumberOfImpliedDo == 0) { @@ -765,7 +766,7 @@ static void genAcValue(mlir::Location loc, impliedDoIndexValue); for (const auto &acValue : impledDo.values()) - std::visit( + Fortran::common::visit( [&](const auto &x) { genAcValue(loc, converter, x, symMap, stmtCtx, arrayBuilder); }, @@ -787,7 +788,7 @@ hlfir::EntityWithAttributes Fortran::lower::ArrayConstructorBuilder<T>::gen( loc, converter, arrayCtorExpr, symMap, stmtCtx); // Run the array lowering strategy through the ac-values. for (const auto &acValue : arrayCtorExpr) - std::visit( + Fortran::common::visit( [&](const auto &x) { genAcValue(loc, converter, x, symMap, stmtCtx, arrayBuilder); }, |
