================ @@ -2357,44 +2332,44 @@ genOMP(Fortran::lower::AbstractConverter &converter, converter.genLocation(beginBlockDirective.source); const auto origDirective = std::get<Fortran::parser::OmpBlockDirective>(beginBlockDirective.t).v; - const auto &beginClauseList = - std::get<Fortran::parser::OmpClauseList>(beginBlockDirective.t); - const auto &endClauseList = - std::get<Fortran::parser::OmpClauseList>(endBlockDirective.t); + List<Clause> beginClauses = makeClauses( + std::get<Fortran::parser::OmpClauseList>(beginBlockDirective.t), semaCtx); + List<Clause> endClauses = makeClauses( + std::get<Fortran::parser::OmpClauseList>(endBlockDirective.t), semaCtx); assert(llvm::omp::blockConstructSet.test(origDirective) && "Expected block construct"); - for (const Fortran::parser::OmpClause &clause : beginClauseList.v) { + for (const Clause &clause : beginClauses) { mlir::Location clauseLocation = converter.genLocation(clause.source); - if (!std::get_if<Fortran::parser::OmpClause::If>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::NumThreads>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::ProcBind>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Allocate>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Default>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Final>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Priority>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Reduction>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Depend>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Private>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Firstprivate>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Copyin>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Shared>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Threads>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Map>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::UseDevicePtr>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::UseDeviceAddr>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::ThreadLimit>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::NumTeams>(&clause.u) && - !std::get_if<Fortran::parser::OmpClause::Simd>(&clause.u)) { + if (!std::get_if<clause::If>(&clause.u) && ---------------- skatrak wrote:
Nit: I'd suggest taking the opportunity of already updating all these lines to sort them alphabetically and possibly replace `std::get_if` with `std::holds_alternative`, but feel free to ignore (same thing below for `endClauses`). https://github.com/llvm/llvm-project/pull/87086 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits