diff options
| author | Alexey Bataev <a.bataev@hotmail.com> | 2014-07-17 12:19:31 +0000 |
|---|---|---|
| committer | Alexey Bataev <a.bataev@hotmail.com> | 2014-07-17 12:19:31 +0000 |
| commit | 7aea99a310b5beca93abc8aa788b074175a95bcb (patch) | |
| tree | 8dde97a13e8d381258d3b6041c3e73482996eae9 /clang/lib/Sema | |
| parent | 9a2350e45950e13d3d3a0ff318c10912ffef9d32 (diff) | |
| download | bcm5719-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.cpp | 12 | ||||
| -rw-r--r-- | clang/lib/Sema/TreeTransform.h | 7 |
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()); |

