From: Jakub Jelinek Date: Mon, 21 Oct 2019 11:35:09 +0000 (+0200) Subject: backport: re PR c/91401 (schedule + dist_schedule clauses rejected on distribute... X-Git-Tag: releases/gcc-9.3.0~525 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e79fcceb96103962d628d3065603fa27c52bbf75;p=thirdparty%2Fgcc.git backport: re PR c/91401 (schedule + dist_schedule clauses rejected on distribute parallel for) Backported from mainline 2019-08-09 Jakub Jelinek PR c/91401 * c-parser.c (c_parser_omp_clause_dist_schedule): Fix up typos in the check_no_duplicate_clause call. Comment it out, instead emit a warning for duplicate dist_schedule clauses. * parser.c (cp_parser_omp_clause_dist_schedule): Comment out the check_no_duplicate_clause call, instead emit a warning for duplicate dist_schedule clauses. * c-c++-common/gomp/pr91401-1.c: New test. * c-c++-common/gomp/pr91401-2.c: New test. From-SVN: r277243 --- diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index b98aa517ff23..744ab614ce5b 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,13 @@ +2019-10-21 Jakub Jelinek + + Backported from mainline + 2019-08-09 Jakub Jelinek + + PR c/91401 + * c-parser.c (c_parser_omp_clause_dist_schedule): Fix up typos in the + check_no_duplicate_clause call. Comment it out, instead emit a + warning for duplicate dist_schedule clauses. + 2019-08-31 Iain Sandoe Backport from mainline. diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index 3b58dc368dee..fe6c82612a24 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -14707,7 +14707,10 @@ c_parser_omp_clause_dist_schedule (c_parser *parser, tree list) c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<,%> or %<)%>"); - check_no_duplicate_clause (list, OMP_CLAUSE_SCHEDULE, "schedule"); + /* check_no_duplicate_clause (list, OMP_CLAUSE_DIST_SCHEDULE, + "dist_schedule"); */ + if (omp_find_clause (list, OMP_CLAUSE_DIST_SCHEDULE)) + warning_at (loc, 0, "too many %qs clauses", "dist_schedule"); if (t == error_mark_node) return list; diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 095d27f68d3c..f6de950dcb4a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,13 @@ +2019-10-21 Jakub Jelinek + + Backported from mainline + 2019-08-09 Jakub Jelinek + + 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 + dist_schedule clauses. + 2019-10-16 Richard Biener Backport from mainline diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 09251bf21356..c9971921e5d3 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -34896,8 +34896,10 @@ cp_parser_omp_clause_dist_schedule (cp_parser *parser, tree list, else if (!cp_parser_require (parser, CPP_CLOSE_PAREN, RT_COMMA_CLOSE_PAREN)) goto resync_fail; - check_no_duplicate_clause (list, OMP_CLAUSE_DIST_SCHEDULE, "dist_schedule", - location); + /* check_no_duplicate_clause (list, OMP_CLAUSE_DIST_SCHEDULE, + "dist_schedule", location); */ + if (omp_find_clause (list, OMP_CLAUSE_DIST_SCHEDULE)) + warning_at (location, 0, "too many %qs clauses", "dist_schedule"); OMP_CLAUSE_CHAIN (c) = list; return c; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 33dc7d9b844b..84aaff446694 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2019-10-21 Jakub Jelinek + + Backported from mainline + 2019-08-09 Jakub Jelinek + + PR c/91401 + * c-c++-common/gomp/pr91401-1.c: New test. + * c-c++-common/gomp/pr91401-2.c: New test. + 2019-10-18 Steven G. Kargl PR fortran/69455 diff --git a/gcc/testsuite/c-c++-common/gomp/pr91401-1.c b/gcc/testsuite/c-c++-common/gomp/pr91401-1.c new file mode 100644 index 000000000000..f588bf6f16cd --- /dev/null +++ b/gcc/testsuite/c-c++-common/gomp/pr91401-1.c @@ -0,0 +1,10 @@ +/* PR c/91401 */ + +void +foo (void) +{ + int i; + #pragma omp distribute parallel for schedule (static) dist_schedule (static) + for (i = 0; i < 64; i++) + ; +} diff --git a/gcc/testsuite/c-c++-common/gomp/pr91401-2.c b/gcc/testsuite/c-c++-common/gomp/pr91401-2.c new file mode 100644 index 000000000000..f537e66e27c5 --- /dev/null +++ b/gcc/testsuite/c-c++-common/gomp/pr91401-2.c @@ -0,0 +1,15 @@ +#pragma omp declare target +void f0 (void); + +void +f1 (void) +{ + int i; + #pragma omp distribute dist_schedule(static) dist_schedule(static) /* { dg-warning "too many 'dist_schedule' clauses" } */ + for (i = 0; i < 8; ++i) + f0 (); + #pragma omp distribute dist_schedule(static,2) dist_schedule(static,4) /* { dg-warning "too many 'dist_schedule' clauses" } */ + for (i = 0; i < 8; ++i) + f0 (); +} +#pragma omp end declare target