@@ -659,11 +659,15 @@ TYPE_PARSER(
659
659
"MERGEABLE" >> construct<OmpClause>(construct<OmpClause::Mergeable>()) ||
660
660
"MESSAGE" >> construct<OmpClause>(construct<OmpClause::Message>(
661
661
parenthesized(Parser<OmpMessageClause>{}))) ||
662
+ "NOCONTEXT" >> construct<OmpClause>(construct<OmpClause::Nocontext>(
663
+ parenthesized(scalarLogicalExpr))) ||
662
664
"NOGROUP" >> construct<OmpClause>(construct<OmpClause::Nogroup>()) ||
663
665
"NONTEMPORAL" >> construct<OmpClause>(construct<OmpClause::Nontemporal>(
664
666
parenthesized(nonemptyList(name)))) ||
665
667
"NOTINBRANCH" >>
666
668
construct<OmpClause>(construct<OmpClause::Notinbranch>()) ||
669
+ "NOVARIANTS" >> construct<OmpClause>(construct<OmpClause::Novariants>(
670
+ parenthesized(scalarLogicalExpr))) ||
667
671
"NOWAIT" >> construct<OmpClause>(construct<OmpClause::Nowait>()) ||
668
672
"NUM_TASKS" >> construct<OmpClause>(construct<OmpClause::NumTasks>(
669
673
parenthesized(Parser<OmpNumTasksClause>{}))) ||
@@ -1027,6 +1031,16 @@ TYPE_PARSER(sourced(construct<OmpCriticalDirective>(verbatim("CRITICAL"_tok),
1027
1031
TYPE_PARSER(construct<OpenMPCriticalConstruct>(
1028
1032
Parser<OmpCriticalDirective>{}, block, Parser<OmpEndCriticalDirective>{}))
1029
1033
1034
+ TYPE_PARSER(sourced(construct<OmpDispatchDirective>(
1035
+ verbatim("DISPATCH"_tok), Parser<OmpClauseList>{})))
1036
+
1037
+ TYPE_PARSER(
1038
+ construct<OmpEndDispatchDirective>(startOmpLine >> "END DISPATCH"_tok))
1039
+
1040
+ TYPE_PARSER(sourced(construct<OpenMPDispatchConstruct>(
1041
+ Parser<OmpDispatchDirective>{} / endOmpLine, block,
1042
+ maybe(Parser<OmpEndDispatchDirective>{} / endOmpLine))))
1043
+
1030
1044
TYPE_PARSER(sourced(construct<OpenMPErrorConstruct>(
1031
1045
verbatim("ERROR"_tok), Parser<OmpClauseList>{})))
1032
1046
@@ -1127,6 +1141,7 @@ TYPE_CONTEXT_PARSER("OpenMP construct"_en_US,
1127
1141
// OpenMPStandaloneConstruct to resolve !$OMP ORDERED
1128
1142
construct<OpenMPConstruct>(Parser<OpenMPStandaloneConstruct>{}),
1129
1143
construct<OpenMPConstruct>(Parser<OpenMPAtomicConstruct>{}),
1144
+ construct<OpenMPConstruct>(Parser<OpenMPDispatchConstruct>{}),
1130
1145
construct<OpenMPConstruct>(Parser<OpenMPErrorConstruct>{}),
1131
1146
construct<OpenMPConstruct>(Parser<OpenMPExecutableAllocate>{}),
1132
1147
construct<OpenMPConstruct>(Parser<OpenMPAllocatorsConstruct>{}),
0 commit comments