@@ -4182,6 +4182,30 @@ struct OmpClauseList {
41824182
41834183// --- Directives and constructs
41844184
4185+ // Ref: [5.1:89-90], [5.2:216]
4186+ //
4187+ // nothing-directive ->
4188+ // NOTHING // since 5.1
4189+ struct OmpNothingDirective {
4190+ using EmptyTrait = std::true_type;
4191+ COPY_AND_ASSIGN_BOILERPLATE (OmpNothingDirective);
4192+ CharBlock source;
4193+ };
4194+
4195+ // Ref: OpenMP [5.2:216-218]
4196+ // ERROR AT(compilation|execution) SEVERITY(fatal|warning) MESSAGE("msg-str)
4197+ struct OmpErrorDirective {
4198+ TUPLE_CLASS_BOILERPLATE (OmpErrorDirective);
4199+ CharBlock source;
4200+ std::tuple<Verbatim, OmpClauseList> t;
4201+ };
4202+
4203+ struct OpenMPUtilityConstruct {
4204+ UNION_CLASS_BOILERPLATE (OpenMPUtilityConstruct);
4205+ CharBlock source;
4206+ std::variant<OmpErrorDirective, OmpNothingDirective> u;
4207+ };
4208+
41854209// 2.7.2 SECTIONS
41864210// 2.11.2 PARALLEL SECTIONS
41874211struct OmpSectionsDirective {
@@ -4506,14 +4530,6 @@ struct OpenMPDepobjConstruct {
45064530 std::tuple<Verbatim, OmpObject, OmpClause> t;
45074531};
45084532
4509- // Ref: OpenMP [5.2:216-218]
4510- // ERROR AT(compilation|execution) SEVERITY(fatal|warning) MESSAGE("msg-str)
4511- struct OpenMPErrorConstruct {
4512- TUPLE_CLASS_BOILERPLATE (OpenMPErrorConstruct);
4513- CharBlock source;
4514- std::tuple<Verbatim, OmpClauseList> t;
4515- };
4516-
45174533// 2.17.8 flush -> FLUSH [memory-order-clause] [(variable-name-list)]
45184534struct OpenMPFlushConstruct {
45194535 TUPLE_CLASS_BOILERPLATE (OpenMPFlushConstruct);
@@ -4586,7 +4602,7 @@ struct OpenMPConstruct {
45864602 UNION_CLASS_BOILERPLATE (OpenMPConstruct);
45874603 std::variant<OpenMPStandaloneConstruct, OpenMPSectionsConstruct,
45884604 OpenMPSectionConstruct, OpenMPLoopConstruct, OpenMPBlockConstruct,
4589- OpenMPAtomicConstruct, OpenMPDeclarativeAllocate, OpenMPErrorConstruct ,
4605+ OpenMPAtomicConstruct, OpenMPDeclarativeAllocate, OpenMPUtilityConstruct ,
45904606 OpenMPExecutableAllocate, OpenMPAllocatorsConstruct,
45914607 OpenMPCriticalConstruct>
45924608 u;
0 commit comments