summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/OpenMPClause.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2019-10-16 18:09:37 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2019-10-16 18:09:37 +0000
commit31ba47646ba40b7892492bb227d85de0d6733e07 (patch)
tree3ac0882ad64f4e4b95c95a8bea50ad098c9da4bc /clang/lib/AST/OpenMPClause.cpp
parent8cc6d42e8d6c0c133e4d5d46e918e5e2ae0781c6 (diff)
downloadbcm5719-llvm-31ba47646ba40b7892492bb227d85de0d6733e07.tar.gz
bcm5719-llvm-31ba47646ba40b7892492bb227d85de0d6733e07.zip
[OPENMP]Allow priority clause in combined task-based directives.
The expression of the priority clause must be captured in the combined task-based directives, like 'parallel master taskloop' directive. llvm-svn: 375026
Diffstat (limited to 'clang/lib/AST/OpenMPClause.cpp')
-rw-r--r--clang/lib/AST/OpenMPClause.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/AST/OpenMPClause.cpp b/clang/lib/AST/OpenMPClause.cpp
index ccb3cd34360..fe1334469d4 100644
--- a/clang/lib/AST/OpenMPClause.cpp
+++ b/clang/lib/AST/OpenMPClause.cpp
@@ -90,6 +90,8 @@ const OMPClauseWithPreInit *OMPClauseWithPreInit::get(const OMPClause *C) {
return static_cast<const OMPNumTasksClause *>(C);
case OMPC_final:
return static_cast<const OMPFinalClause *>(C);
+ case OMPC_priority:
+ return static_cast<const OMPPriorityClause *>(C);
case OMPC_default:
case OMPC_proc_bind:
case OMPC_safelen:
@@ -117,7 +119,6 @@ const OMPClauseWithPreInit *OMPClauseWithPreInit::get(const OMPClause *C) {
case OMPC_threads:
case OMPC_simd:
case OMPC_map:
- case OMPC_priority:
case OMPC_nogroup:
case OMPC_hint:
case OMPC_defaultmap:
@@ -255,6 +256,12 @@ OMPClause::child_range OMPFinalClause::used_children() {
return child_range(&Condition, &Condition + 1);
}
+OMPClause::child_range OMPPriorityClause::used_children() {
+ if (Stmt **C = getAddrOfExprAsWritten(getPreInitStmt()))
+ return child_range(C, C + 1);
+ return child_range(&Priority, &Priority + 1);
+}
+
OMPOrderedClause *OMPOrderedClause::Create(const ASTContext &C, Expr *Num,
unsigned NumLoops,
SourceLocation StartLoc,
OpenPOWER on IntegriCloud