@@ -219,7 +219,6 @@ MAKE_EMPTY_CLASS(AcqRel, AcqRel);
219219MAKE_EMPTY_CLASS (Acquire, Acquire);
220220MAKE_EMPTY_CLASS (Capture, Capture);
221221MAKE_EMPTY_CLASS (Compare, Compare);
222- MAKE_EMPTY_CLASS (DynamicAllocators, DynamicAllocators);
223222MAKE_EMPTY_CLASS (Full, Full);
224223MAKE_EMPTY_CLASS (Inbranch, Inbranch);
225224MAKE_EMPTY_CLASS (Mergeable, Mergeable);
@@ -235,13 +234,9 @@ MAKE_EMPTY_CLASS(OmpxBare, OmpxBare);
235234MAKE_EMPTY_CLASS (Read, Read);
236235MAKE_EMPTY_CLASS (Relaxed, Relaxed);
237236MAKE_EMPTY_CLASS (Release, Release);
238- MAKE_EMPTY_CLASS (ReverseOffload, ReverseOffload);
239237MAKE_EMPTY_CLASS (SeqCst, SeqCst);
240- MAKE_EMPTY_CLASS (SelfMaps, SelfMaps);
241238MAKE_EMPTY_CLASS (Simd, Simd);
242239MAKE_EMPTY_CLASS (Threads, Threads);
243- MAKE_EMPTY_CLASS (UnifiedAddress, UnifiedAddress);
244- MAKE_EMPTY_CLASS (UnifiedSharedMemory, UnifiedSharedMemory);
245240MAKE_EMPTY_CLASS (Unknown, Unknown);
246241MAKE_EMPTY_CLASS (Untied, Untied);
247242MAKE_EMPTY_CLASS (Weak, Weak);
@@ -775,7 +770,18 @@ Doacross make(const parser::OmpClause::Doacross &inp,
775770 return makeDoacross (inp.v .v , semaCtx);
776771}
777772
778- // DynamicAllocators: empty
773+ DynamicAllocators make (const parser::OmpClause::DynamicAllocators &inp,
774+ semantics::SemanticsContext &semaCtx) {
775+ // inp.v -> td::optional<arser::OmpDynamicAllocatorsClause>
776+ auto &&maybeRequired = maybeApply (
777+ [&](const parser::OmpDynamicAllocatorsClause &c) {
778+ return makeExpr (c.v , semaCtx);
779+ },
780+ inp.v );
781+
782+ return DynamicAllocators{/* Required=*/ std::move (maybeRequired)};
783+ }
784+
779785
780786DynGroupprivate make (const parser::OmpClause::DynGroupprivate &inp,
781787 semantics::SemanticsContext &semaCtx) {
@@ -1338,7 +1344,18 @@ Reduction make(const parser::OmpClause::Reduction &inp,
13381344
13391345// Relaxed: empty
13401346// Release: empty
1341- // ReverseOffload: empty
1347+
1348+ ReverseOffload make (const parser::OmpClause::ReverseOffload &inp,
1349+ semantics::SemanticsContext &semaCtx) {
1350+ // inp.v -> std::optional<parser::OmpReverseOffloadClause>
1351+ auto &&maybeRequired = maybeApply (
1352+ [&](const parser::OmpReverseOffloadClause &c) {
1353+ return makeExpr (c.v , semaCtx);
1354+ },
1355+ inp.v );
1356+
1357+ return ReverseOffload{/* Required=*/ std::move (maybeRequired)};
1358+ }
13421359
13431360Safelen make (const parser::OmpClause::Safelen &inp,
13441361 semantics::SemanticsContext &semaCtx) {
@@ -1391,6 +1408,18 @@ Schedule make(const parser::OmpClause::Schedule &inp,
13911408
13921409// SeqCst: empty
13931410
1411+ SelfMaps make (const parser::OmpClause::SelfMaps &inp,
1412+ semantics::SemanticsContext &semaCtx) {
1413+ // inp.v -> std::optional<parser::OmpSelfMapsClause>
1414+ auto &&maybeRequired = maybeApply (
1415+ [&](const parser::OmpSelfMapsClause &c) {
1416+ return makeExpr (c.v , semaCtx);
1417+ },
1418+ inp.v );
1419+
1420+ return SelfMaps{/* Required=*/ std::move (maybeRequired)};
1421+ }
1422+
13941423Severity make (const parser::OmpClause::Severity &inp,
13951424 semantics::SemanticsContext &semaCtx) {
13961425 // inp -> empty
@@ -1480,8 +1509,29 @@ To make(const parser::OmpClause::To &inp,
14801509 /* LocatorList=*/ makeObjects (t3, semaCtx)}};
14811510}
14821511
1483- // UnifiedAddress: empty
1484- // UnifiedSharedMemory: empty
1512+ UnifiedAddress make (const parser::OmpClause::UnifiedAddress &inp,
1513+ semantics::SemanticsContext &semaCtx) {
1514+ // inp.v -> std::optional<parser::OmpUnifiedAddressClause>
1515+ auto &&maybeRequired = maybeApply (
1516+ [&](const parser::OmpUnifiedAddressClause &c) {
1517+ return makeExpr (c.v , semaCtx);
1518+ },
1519+ inp.v );
1520+
1521+ return UnifiedAddress{/* Required=*/ std::move (maybeRequired)};
1522+ }
1523+
1524+ UnifiedSharedMemory make (const parser::OmpClause::UnifiedSharedMemory &inp,
1525+ semantics::SemanticsContext &semaCtx) {
1526+ // inp.v -> std::optional<parser::OmpUnifiedSharedMemoryClause>
1527+ auto &&maybeRequired = maybeApply (
1528+ [&](const parser::OmpUnifiedSharedMemoryClause &c) {
1529+ return makeExpr (c.v , semaCtx);
1530+ },
1531+ inp.v );
1532+
1533+ return UnifiedSharedMemory{/* Required=*/ std::move (maybeRequired)};
1534+ }
14851535
14861536Uniform make (const parser::OmpClause::Uniform &inp,
14871537 semantics::SemanticsContext &semaCtx) {
0 commit comments