diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2019-09-23 18:13:31 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2019-09-23 18:13:31 +0000 |
commit | 0781770728d63f531128546a8fc6612b564d47ba (patch) | |
tree | ded7b3cf940b90a0676d3733f3620bd93b75874a /lib/Parse/ParseOpenMP.cpp | |
parent | 59708fc5bcbea0e4e8018a49f4a92db27c16dc64 (diff) | |
download | clang-0781770728d63f531128546a8fc6612b564d47ba.tar.gz |
[OPENMP]Use standard parsing for 'match' clause, NFC.
Reused standard clauses parsing scheme for parsing/matching 'match'
clause in 'declare variant' directive.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@372635 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseOpenMP.cpp')
-rw-r--r-- | lib/Parse/ParseOpenMP.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/Parse/ParseOpenMP.cpp b/lib/Parse/ParseOpenMP.cpp index 8d852b5dcb..570f246d19 100644 --- a/lib/Parse/ParseOpenMP.cpp +++ b/lib/Parse/ParseOpenMP.cpp @@ -796,7 +796,7 @@ bool Parser::parseOpenMPContextSelectors( // Parse inner context selector set name. if (!Tok.is(tok::identifier)) { Diag(Tok.getLocation(), diag::err_omp_declare_variant_no_ctx_selector) - << "match"; + << getOpenMPClauseName(OMPC_match); return true; } SmallString<16> Buffer; @@ -863,9 +863,12 @@ void Parser::ParseOMPDeclareVariantClauses(Parser::DeclGroupPtrTy Ptr, Ptr, AssociatedFunction.get(), SourceRange(Loc, Tok.getLocation())); // Parse 'match'. - if (!Tok.is(tok::identifier) || PP.getSpelling(Tok).compare("match")) { + OpenMPClauseKind CKind = Tok.isAnnotation() + ? OMPC_unknown + : getOpenMPClauseKind(PP.getSpelling(Tok)); + if (CKind != OMPC_match) { Diag(Tok.getLocation(), diag::err_omp_declare_variant_wrong_clause) - << "match"; + << getOpenMPClauseName(OMPC_match); while (!SkipUntil(tok::annot_pragma_openmp_end, Parser::StopBeforeMatch)) ; // Skip the last annot_pragma_openmp_end. @@ -875,7 +878,8 @@ void Parser::ParseOMPDeclareVariantClauses(Parser::DeclGroupPtrTy Ptr, (void)ConsumeToken(); // Parse '('. BalancedDelimiterTracker T(*this, tok::l_paren, tok::annot_pragma_openmp_end); - if (T.expectAndConsume(diag::err_expected_lparen_after, "match")) { + if (T.expectAndConsume(diag::err_expected_lparen_after, + getOpenMPClauseName(OMPC_match))) { while (!SkipUntil(tok::annot_pragma_openmp_end, StopBeforeMatch)) ; // Skip the last annot_pragma_openmp_end. @@ -1950,6 +1954,7 @@ OMPClause *Parser::ParseOpenMPClause(OpenMPDirectiveKind DKind, break; case OMPC_threadprivate: case OMPC_uniform: + case OMPC_match: if (!WrongDirective) Diag(Tok, diag::err_omp_unexpected_clause) << getOpenMPClauseName(CKind) << getOpenMPDirectiveName(DKind); |