@@ -721,10 +721,20 @@ From make(const parser::OmpClause::From &inp,
721721// Full: empty
722722
723723Grainsize make (const parser::OmpClause::Grainsize &inp,
724- semantics::SemanticsContext &semaCtx) {
725- // inp.v -> parser::ScalarIntExpr
726- return Grainsize{{/* Prescriptiveness=*/ std::nullopt ,
727- /* GrainSize=*/ makeExpr (inp.v , semaCtx)}};
724+ semantics::SemanticsContext &semaCtx) {
725+ // inp.v -> parser::OmpGrainsizeClause
726+ using wrapped = parser::OmpGrainsizeClause;
727+
728+ CLAUSET_ENUM_CONVERT ( //
729+ convert, parser::OmpGrainsizeClause::Prescriptiveness, Grainsize::Prescriptiveness,
730+ // clang-format off
731+ MS (Strict, Strict)
732+ // clang-format on
733+ );
734+ auto &t0 = std::get<std::optional<wrapped::Prescriptiveness>>(inp.v .t );
735+ auto &t1 = std::get<parser::ScalarIntExpr>(inp.v .t );
736+ return Grainsize{{/* Prescriptiveness=*/ maybeApply (convert, t0),
737+ /* Grainsize=*/ makeExpr (t1, semaCtx)}};
728738}
729739
730740HasDeviceAddr make (const parser::OmpClause::HasDeviceAddr &inp,
@@ -971,9 +981,20 @@ Novariants make(const parser::OmpClause::Novariants &inp,
971981
972982NumTasks make (const parser::OmpClause::NumTasks &inp,
973983 semantics::SemanticsContext &semaCtx) {
974- // inp.v -> parser::ScalarIntExpr
975- return NumTasks{{/* Prescriptiveness=*/ std::nullopt ,
976- /* NumTasks=*/ makeExpr (inp.v , semaCtx)}};
984+ // inp.v -> parser::OmpNumTasksClause
985+ using wrapped = parser::OmpNumTasksClause;
986+
987+ CLAUSET_ENUM_CONVERT ( //
988+ convert, parser::OmpNumTasksClause::Prescriptiveness,
989+ NumTasks::Prescriptiveness,
990+ // clang-format off
991+ MS (Strict, Strict)
992+ // clang-format on
993+ );
994+ auto &t0 = std::get<std::optional<wrapped::Prescriptiveness>>(inp.v .t );
995+ auto &t1 = std::get<parser::ScalarIntExpr>(inp.v .t );
996+ return NumTasks{{/* Prescriptiveness=*/ maybeApply (convert, t0),
997+ /* NumTasks=*/ makeExpr (t1, semaCtx)}};
977998}
978999
9791000NumTeams make (const parser::OmpClause::NumTeams &inp,
0 commit comments