aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/parser.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-12-17 15:16:42 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2007-12-17 15:16:42 +0100
commit8085ca151e49154e25d8c38b88b688ee74dc69ba (patch)
tree0c1892c61bffadc9f08eb2066cb7ca1d4438cae2 /gcc/cp/parser.c
parent7f59aaba14dbcbd17ed63e0828d66742b61a5466 (diff)
downloadgcc-8085ca151e49154e25d8c38b88b688ee74dc69ba.zip
gcc-8085ca151e49154e25d8c38b88b688ee74dc69ba.tar.gz
gcc-8085ca151e49154e25d8c38b88b688ee74dc69ba.tar.bz2
re PR c/34506 (gcc disallows comma between C/C++ OpenMP clauses)
PR c/34506 * c-parser.c (c_parser_omp_all_clauses): Accept optional comma in between clauses. * parser.c (cp_parser_omp_all_clauses): Accept optional comma in between clauses. * gcc.dg/gomp/clause-2.c: New test. * g++.dg/gomp/clause-4.C: New test. From-SVN: r131008
Diffstat (limited to 'gcc/cp/parser.c')
-rw-r--r--gcc/cp/parser.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 879e701..f3d4ce2 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -19671,13 +19671,20 @@ cp_parser_omp_all_clauses (cp_parser *parser, unsigned int mask,
const char *where, cp_token *pragma_tok)
{
tree clauses = NULL;
+ bool first = true;
while (cp_lexer_next_token_is_not (parser->lexer, CPP_PRAGMA_EOL))
{
- pragma_omp_clause c_kind = cp_parser_omp_clause_name (parser);
+ pragma_omp_clause c_kind;
const char *c_name;
tree prev = clauses;
+ if (!first && cp_lexer_next_token_is (parser->lexer, CPP_COMMA))
+ cp_lexer_consume_token (parser->lexer);
+
+ c_kind = cp_parser_omp_clause_name (parser);
+ first = false;
+
switch (c_kind)
{
case PRAGMA_OMP_CLAUSE_COPYIN: