diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2014-06-20 09:44:06 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2014-06-20 09:44:06 +0000 |
commit | 142e1fc9eae98667c54e07325196d113ecc94c74 (patch) | |
tree | 5ac278d2dacef0c29c8ca25f8e24087d88cc051e /clang/lib/Parse/ParseOpenMP.cpp | |
parent | 6a29b55a5a390bcc60c27ec49776a6642ae58194 (diff) | |
download | bcm5719-llvm-142e1fc9eae98667c54e07325196d113ecc94c74.tar.gz bcm5719-llvm-142e1fc9eae98667c54e07325196d113ecc94c74.zip |
[OPENMP] Initial support for 'ordered' clause.
llvm-svn: 211347
Diffstat (limited to 'clang/lib/Parse/ParseOpenMP.cpp')
-rw-r--r-- | clang/lib/Parse/ParseOpenMP.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseOpenMP.cpp b/clang/lib/Parse/ParseOpenMP.cpp index 9cd9d4d6340..599dda42124 100644 --- a/clang/lib/Parse/ParseOpenMP.cpp +++ b/clang/lib/Parse/ParseOpenMP.cpp @@ -317,6 +317,16 @@ OMPClause *Parser::ParseOpenMPClause(OpenMPDirectiveKind DKind, Clause = ParseOpenMPSingleExprWithArgClause(CKind); break; + case OMPC_ordered: + // OpenMP [2.7.1, Restrictions, p. 9] + // Only one ordered clause can appear on a loop directive. + if (!FirstClause) { + Diag(Tok, diag::err_omp_more_one_clause) << getOpenMPDirectiveName(DKind) + << getOpenMPClauseName(CKind); + } + + Clause = ParseOpenMPClause(CKind); + break; case OMPC_private: case OMPC_firstprivate: case OMPC_lastprivate: @@ -409,6 +419,19 @@ OMPClause *Parser::ParseOpenMPSimpleClause(OpenMPClauseKind Kind) { Tok.getLocation()); } +/// \brief Parsing of OpenMP clauses like 'ordered'. +/// +/// ordered-clause: +/// 'ordered' +/// +OMPClause *Parser::ParseOpenMPClause(OpenMPClauseKind Kind) { + SourceLocation Loc = Tok.getLocation(); + ConsumeAnyToken(); + + return Actions.ActOnOpenMPClause(Kind, Loc, Tok.getLocation()); +} + + /// \brief Parsing of OpenMP clauses with single expressions and some additional /// argument like 'schedule' or 'dist_schedule'. /// |