summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2014-07-17 12:19:31 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2014-07-17 12:19:31 +0000
commit7aea99a310b5beca93abc8aa788b074175a95bcb (patch)
tree8dde97a13e8d381258d3b6041c3e73482996eae9 /clang/lib/Sema
parent9a2350e45950e13d3d3a0ff318c10912ffef9d32 (diff)
downloadbcm5719-llvm-7aea99a310b5beca93abc8aa788b074175a95bcb.tar.gz
bcm5719-llvm-7aea99a310b5beca93abc8aa788b074175a95bcb.zip
[OPENMP] Initial support for parsing and sema analysis of 'untied' clause.
llvm-svn: 213257
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/SemaOpenMP.cpp12
-rw-r--r--clang/lib/Sema/TreeTransform.h7
2 files changed, 19 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index ef36e7e901e..85a9ccffd8c 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -2068,6 +2068,7 @@ OMPClause *Sema::ActOnOpenMPSingleExprClause(OpenMPClauseKind Kind, Expr *Expr,
case OMPC_copyprivate:
case OMPC_ordered:
case OMPC_nowait:
+ case OMPC_untied:
case OMPC_threadprivate:
case OMPC_unknown:
llvm_unreachable("Clause is not allowed.");
@@ -2268,6 +2269,7 @@ OMPClause *Sema::ActOnOpenMPSimpleClause(
case OMPC_copyprivate:
case OMPC_ordered:
case OMPC_nowait:
+ case OMPC_untied:
case OMPC_threadprivate:
case OMPC_unknown:
llvm_unreachable("Clause is not allowed.");
@@ -2380,6 +2382,7 @@ OMPClause *Sema::ActOnOpenMPSingleExprWithArgClause(
case OMPC_copyprivate:
case OMPC_ordered:
case OMPC_nowait:
+ case OMPC_untied:
case OMPC_threadprivate:
case OMPC_unknown:
llvm_unreachable("Clause is not allowed.");
@@ -2454,6 +2457,9 @@ OMPClause *Sema::ActOnOpenMPClause(OpenMPClauseKind Kind,
case OMPC_nowait:
Res = ActOnOpenMPNowaitClause(StartLoc, EndLoc);
break;
+ case OMPC_untied:
+ Res = ActOnOpenMPUntiedClause(StartLoc, EndLoc);
+ break;
case OMPC_if:
case OMPC_final:
case OMPC_num_threads:
@@ -2488,6 +2494,11 @@ OMPClause *Sema::ActOnOpenMPNowaitClause(SourceLocation StartLoc,
return new (Context) OMPNowaitClause(StartLoc, EndLoc);
}
+OMPClause *Sema::ActOnOpenMPUntiedClause(SourceLocation StartLoc,
+ SourceLocation EndLoc) {
+ return new (Context) OMPUntiedClause(StartLoc, EndLoc);
+}
+
OMPClause *Sema::ActOnOpenMPVarListClause(
OpenMPClauseKind Kind, ArrayRef<Expr *> VarList, Expr *TailExpr,
SourceLocation StartLoc, SourceLocation LParenLoc, SourceLocation ColonLoc,
@@ -2535,6 +2546,7 @@ OMPClause *Sema::ActOnOpenMPVarListClause(
case OMPC_schedule:
case OMPC_ordered:
case OMPC_nowait:
+ case OMPC_untied:
case OMPC_threadprivate:
case OMPC_unknown:
llvm_unreachable("Clause is not allowed.");
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h
index 6eb18e8ac79..4a9cd78bb6e 100644
--- a/clang/lib/Sema/TreeTransform.h
+++ b/clang/lib/Sema/TreeTransform.h
@@ -6646,6 +6646,13 @@ TreeTransform<Derived>::TransformOMPNowaitClause(OMPNowaitClause *C) {
template <typename Derived>
OMPClause *
+TreeTransform<Derived>::TransformOMPUntiedClause(OMPUntiedClause *C) {
+ // No need to rebuild this clause, no template-dependent parameters.
+ return C;
+}
+
+template <typename Derived>
+OMPClause *
TreeTransform<Derived>::TransformOMPPrivateClause(OMPPrivateClause *C) {
llvm::SmallVector<Expr *, 16> Vars;
Vars.reserve(C->varlist_size());
OpenPOWER on IntegriCloud