diff options
Diffstat (limited to 'flang/lib/Parser/openmp-parsers.cpp')
-rw-r--r-- | flang/lib/Parser/openmp-parsers.cpp | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/flang/lib/Parser/openmp-parsers.cpp b/flang/lib/Parser/openmp-parsers.cpp index 9507021..d677e14 100644 --- a/flang/lib/Parser/openmp-parsers.cpp +++ b/flang/lib/Parser/openmp-parsers.cpp @@ -548,6 +548,14 @@ TYPE_PARSER(construct<OmpAllocatorSimpleModifier>(scalarIntExpr)) TYPE_PARSER(construct<OmpAlwaysModifier>( // "ALWAYS" >> pure(OmpAlwaysModifier::Value::Always))) +TYPE_PARSER(construct<OmpAttachModifier::Value>( + "ALWAYS" >> pure(OmpAttachModifier::Value::Always) || + "AUTO" >> pure(OmpAttachModifier::Value::Auto) || + "NEVER" >> pure(OmpAttachModifier::Value::Never))) + +TYPE_PARSER(construct<OmpAttachModifier>( // + "ATTACH" >> parenthesized(Parser<OmpAttachModifier::Value>{}))) + TYPE_PARSER(construct<OmpAutomapModifier>( "AUTOMAP" >> pure(OmpAutomapModifier::Value::Automap))) @@ -744,6 +752,7 @@ TYPE_PARSER(sourced( TYPE_PARSER(sourced(construct<OmpMapClause::Modifier>( sourced(construct<OmpMapClause::Modifier>(Parser<OmpAlwaysModifier>{}) || + construct<OmpMapClause::Modifier>(Parser<OmpAttachModifier>{}) || construct<OmpMapClause::Modifier>(Parser<OmpCloseModifier>{}) || construct<OmpMapClause::Modifier>(Parser<OmpDeleteModifier>{}) || construct<OmpMapClause::Modifier>(Parser<OmpPresentModifier>{}) || @@ -1085,7 +1094,7 @@ TYPE_PARSER(construct<OmpBindClause>( "TEAMS" >> pure(OmpBindClause::Binding::Teams) || "THREAD" >> pure(OmpBindClause::Binding::Thread))) -TYPE_PARSER(construct<OmpAlignClause>(scalarIntExpr)) +TYPE_PARSER(construct<OmpAlignClause>(scalarIntConstantExpr)) TYPE_PARSER(construct<OmpAtClause>( "EXECUTION" >> pure(OmpAtClause::ActionTime::Execution) || @@ -1158,7 +1167,8 @@ TYPE_PARSER( // "DOACROSS" >> construct<OmpClause>(parenthesized(Parser<OmpDoacrossClause>{})) || "DYNAMIC_ALLOCATORS" >> - construct<OmpClause>(construct<OmpClause::DynamicAllocators>()) || + construct<OmpClause>(construct<OmpClause::DynamicAllocators>( + maybe(parenthesized(scalarLogicalConstantExpr)))) || "DYN_GROUPPRIVATE" >> construct<OmpClause>(construct<OmpClause::DynGroupprivate>( parenthesized(Parser<OmpDynGroupprivateClause>{}))) || @@ -1270,12 +1280,15 @@ TYPE_PARSER( // "REPLAYABLE" >> construct<OmpClause>(construct<OmpClause::Replayable>( maybe(parenthesized(Parser<OmpReplayableClause>{})))) || "REVERSE_OFFLOAD" >> - construct<OmpClause>(construct<OmpClause::ReverseOffload>()) || + construct<OmpClause>(construct<OmpClause::ReverseOffload>( + maybe(parenthesized(scalarLogicalConstantExpr)))) || "SAFELEN" >> construct<OmpClause>(construct<OmpClause::Safelen>( parenthesized(scalarIntConstantExpr))) || "SCHEDULE" >> construct<OmpClause>(construct<OmpClause::Schedule>( parenthesized(Parser<OmpScheduleClause>{}))) || "SEQ_CST" >> construct<OmpClause>(construct<OmpClause::SeqCst>()) || + "SELF_MAPS" >> construct<OmpClause>(construct<OmpClause::SelfMaps>( + maybe(parenthesized(scalarLogicalConstantExpr)))) || "SEVERITY" >> construct<OmpClause>(construct<OmpClause::Severity>( parenthesized(Parser<OmpSeverityClause>{}))) || "SHARED" >> construct<OmpClause>(construct<OmpClause::Shared>( @@ -1303,9 +1316,11 @@ TYPE_PARSER( // construct<OmpClause>(construct<OmpClause::UseDeviceAddr>( parenthesized(Parser<OmpObjectList>{}))) || "UNIFIED_ADDRESS" >> - construct<OmpClause>(construct<OmpClause::UnifiedAddress>()) || + construct<OmpClause>(construct<OmpClause::UnifiedAddress>( + maybe(parenthesized(scalarLogicalConstantExpr)))) || "UNIFIED_SHARED_MEMORY" >> - construct<OmpClause>(construct<OmpClause::UnifiedSharedMemory>()) || + construct<OmpClause>(construct<OmpClause::UnifiedSharedMemory>( + maybe(parenthesized(scalarLogicalConstantExpr)))) || "UNIFORM" >> construct<OmpClause>(construct<OmpClause::Uniform>( parenthesized(nonemptyList(name)))) || "UNTIED" >> construct<OmpClause>(construct<OmpClause::Untied>()) || |