diff options
author | Jakub Jelinek <jakub@redhat.com> | 2019-08-09 09:24:51 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-08-09 09:24:51 +0200 |
commit | bb522e2eea23703375e65a044c93e8144ef4664e (patch) | |
tree | c970ba6f39747a06886a21ef0f9c58c7ac763d1b /gcc/cp | |
parent | 2c3b8badaac235ce78ce22ac7582346d16118987 (diff) | |
download | gcc-bb522e2eea23703375e65a044c93e8144ef4664e.zip gcc-bb522e2eea23703375e65a044c93e8144ef4664e.tar.gz gcc-bb522e2eea23703375e65a044c93e8144ef4664e.tar.bz2 |
c-parser.c (check_no_duplicate_clause): Simplify using omp_find_clause.
c/
* c-parser.c (check_no_duplicate_clause): Simplify using
omp_find_clause.
(c_parser_omp_clause_if): Fix up printing of target {enter,exit} data
directive name modifiers.
(c_parser_omp_clause_proc_bind): Check for duplicate proc_bind clause.
cp/
* parser.c (check_no_duplicate_clause): Simplify using
omp_find_clause.
(cp_parser_omp_clause_if): Fix up printing of target {enter,exit} data
directive name modifiers.
testsuite/
* c-c++-common/gomp/if-4.c: New test.
* c-c++-common/gomp/clause-dups-1.c: New test.
From-SVN: r274227
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/parser.c | 14 |
2 files changed, 9 insertions, 10 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 93b6e5a..2e7909d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,10 @@ 2019-08-09 Jakub Jelinek <jakub@redhat.com> + * parser.c (check_no_duplicate_clause): Simplify using + omp_find_clause. + (cp_parser_omp_clause_if): Fix up printing of target {enter,exit} data + directive name modifiers. + PR c/91401 * parser.c (cp_parser_omp_clause_dist_schedule): Comment out the check_no_duplicate_clause call, instead emit a warning for duplicate diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index a2efb55..b5196f6 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -32684,14 +32684,8 @@ static void check_no_duplicate_clause (tree clauses, enum omp_clause_code code, const char *name, location_t location) { - tree c; - - for (c = clauses; c ; c = OMP_CLAUSE_CHAIN (c)) - if (OMP_CLAUSE_CODE (c) == code) - { - error_at (location, "too many %qs clauses", name); - break; - } + if (omp_find_clause (clauses, code)) + error_at (location, "too many %qs clauses", name); } /* OpenMP 2.5: @@ -33581,8 +33575,8 @@ cp_parser_omp_clause_if (cp_parser *parser, tree list, location_t location, case OMP_TARGET_DATA: p = "target data"; break; case OMP_TARGET: p = "target"; break; case OMP_TARGET_UPDATE: p = "target update"; break; - case OMP_TARGET_ENTER_DATA: p = "enter data"; break; - case OMP_TARGET_EXIT_DATA: p = "exit data"; break; + case OMP_TARGET_ENTER_DATA: p = "target enter data"; break; + case OMP_TARGET_EXIT_DATA: p = "target exit data"; break; default: gcc_unreachable (); } error_at (location, "too many %<if%> clauses with %qs modifier", |