diff options
Diffstat (limited to 'flang/lib/Lower/OpenMP/Clauses.cpp')
-rw-r--r-- | flang/lib/Lower/OpenMP/Clauses.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/flang/lib/Lower/OpenMP/Clauses.cpp b/flang/lib/Lower/OpenMP/Clauses.cpp index 686fba0..7f75aae 100644 --- a/flang/lib/Lower/OpenMP/Clauses.cpp +++ b/flang/lib/Lower/OpenMP/Clauses.cpp @@ -772,8 +772,19 @@ Doacross make(const parser::OmpClause::Doacross &inp, Enter make(const parser::OmpClause::Enter &inp, semantics::SemanticsContext &semaCtx) { - // inp.v -> parser::OmpObjectList - return Enter{makeObjects(/*List=*/inp.v, semaCtx)}; + // inp.v -> parser::OmpEnterClause + CLAUSET_ENUM_CONVERT( // + convert, parser::OmpAutomapModifier::Value, Enter::Modifier, + // clang-format off + MS(Automap, Automap) + // clang-format on + ); + auto &mods = semantics::OmpGetModifiers(inp.v); + auto *mod = semantics::OmpGetUniqueModifier<parser::OmpAutomapModifier>(mods); + auto &objList = std::get<parser::OmpObjectList>(inp.v.t); + + return Enter{{/*Modifier=*/maybeApplyToV(convert, mod), + /*List=*/makeObjects(objList, semaCtx)}}; } Exclusive make(const parser::OmpClause::Exclusive &inp, |