diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2020-03-17 09:17:42 -0400 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2020-03-17 09:19:03 -0400 |
commit | 0f0564bb9a3ca4527eb2333eba34643e05c315ca (patch) | |
tree | 89b7ff501eeba263bba5053a9a6f43417d6adb9b /clang/lib/Parse/ParseOpenMP.cpp | |
parent | 211ba00ce00ff3feb9b1f52ece712e370c184015 (diff) | |
download | llvm-0f0564bb9a3ca4527eb2333eba34643e05c315ca.zip llvm-0f0564bb9a3ca4527eb2333eba34643e05c315ca.tar.gz llvm-0f0564bb9a3ca4527eb2333eba34643e05c315ca.tar.bz2 |
[OPENMP50]Initial support for detach clause in task directive.
Added parsing/sema/serialization support for detach clause.
Diffstat (limited to 'clang/lib/Parse/ParseOpenMP.cpp')
-rw-r--r-- | clang/lib/Parse/ParseOpenMP.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/clang/lib/Parse/ParseOpenMP.cpp b/clang/lib/Parse/ParseOpenMP.cpp index 1da884f..86c5996 100644 --- a/clang/lib/Parse/ParseOpenMP.cpp +++ b/clang/lib/Parse/ParseOpenMP.cpp @@ -2340,7 +2340,7 @@ bool Parser::ParseOpenMPSimpleVarList( /// from-clause | is_device_ptr-clause | task_reduction-clause | /// in_reduction-clause | allocator-clause | allocate-clause | /// acq_rel-clause | acquire-clause | release-clause | relaxed-clause | -/// depobj-clause | destroy-clause +/// depobj-clause | destroy-clause | detach-clause /// OMPClause *Parser::ParseOpenMPClause(OpenMPDirectiveKind DKind, OpenMPClauseKind CKind, bool FirstClause) { @@ -2372,6 +2372,7 @@ OMPClause *Parser::ParseOpenMPClause(OpenMPDirectiveKind DKind, case OMPC_hint: case OMPC_allocator: case OMPC_depobj: + case OMPC_detach: // OpenMP [2.5, Restrictions] // At most one num_threads clause can appear on the directive. // OpenMP [2.8.1, simd construct, Restrictions] @@ -2394,6 +2395,8 @@ OMPClause *Parser::ParseOpenMPClause(OpenMPDirectiveKind DKind, // At most one num_tasks clause can appear on the directive. // OpenMP [2.11.3, allocate Directive, Restrictions] // At most one allocator clause can appear on the directive. + // OpenMP 5.0, 2.10.1 task Construct, Restrictions. + // At most one detach clause can appear on the directive. if (!FirstClause) { Diag(Tok, diag::err_omp_more_one_clause) << getOpenMPDirectiveName(DKind) << getOpenMPClauseName(CKind) << 0; @@ -2552,7 +2555,8 @@ ExprResult Parser::ParseOpenMPParensExpr(StringRef ClauseName, /// Parsing of OpenMP clauses with single expressions like 'final', /// 'collapse', 'safelen', 'num_threads', 'simdlen', 'num_teams', -/// 'thread_limit', 'simdlen', 'priority', 'grainsize', 'num_tasks' or 'hint'. +/// 'thread_limit', 'simdlen', 'priority', 'grainsize', 'num_tasks', 'hint' or +/// 'detach'. /// /// final-clause: /// 'final' '(' expression ')' @@ -2584,6 +2588,9 @@ ExprResult Parser::ParseOpenMPParensExpr(StringRef ClauseName, /// allocator-clause: /// 'allocator' '(' expression ')' /// +/// detach-clause: +/// 'detach' '(' event-handler-expression ')' +/// OMPClause *Parser::ParseOpenMPSingleExprClause(OpenMPClauseKind Kind, bool ParseOnly) { SourceLocation Loc = ConsumeToken(); |