From 02b466f44c72aa6a79786b24b1d12c7a4caa90a0 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 14 Jul 2019 10:29:38 +0200 Subject: [PATCH] backport: re PR c/91149 (GCC 9 and later incorrectly rejects OpenMP task reduction-modifier on target parallel combined construct) Backported from mainline 2019-07-13 Jakub Jelinek PR c/91149 * c-omp.c (c_omp_split_clauses): Fix a pasto in OMP_CLAUSE_REDUCTION_TASK handling. * c-c++-common/gomp/reduction-task-3.c: New test. From-SVN: r273478 --- gcc/c-family/ChangeLog | 9 +++++++++ gcc/c-family/c-omp.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/c-c++-common/gomp/reduction-task-3.c | 12 ++++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/c-c++-common/gomp/reduction-task-3.c diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 1220c634c848..918141c33ac4 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,12 @@ +2019-07-14 Jakub Jelinek + + Backported from mainline + 2019-07-13 Jakub Jelinek + + PR c/91149 + * c-omp.c (c_omp_split_clauses): Fix a pasto in + OMP_CLAUSE_REDUCTION_TASK handling. + 2019-06-29 Jakub Jelinek Backported from mainline diff --git a/gcc/c-family/c-omp.c b/gcc/c-family/c-omp.c index 88418f665532..1f288a6fbb21 100644 --- a/gcc/c-family/c-omp.c +++ b/gcc/c-family/c-omp.c @@ -1648,7 +1648,7 @@ c_omp_split_clauses (location_t loc, enum tree_code code, } else if (code != OMP_SECTIONS && (mask & (OMP_CLAUSE_MASK_1 - << PRAGMA_OMP_CLAUSE_SCHEDULE)) == 0 + << PRAGMA_OMP_CLAUSE_NUM_THREADS)) == 0 && (mask & (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_SCHEDULE)) == 0) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 994f11010ac0..0146529ed43a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,11 @@ 2019-07-14 Jakub Jelinek Backported from mainline + 2019-07-13 Jakub Jelinek + + PR c/91149 + * c-c++-common/gomp/reduction-task-3.c: New test. + 2019-07-04 Jakub Jelinek PR middle-end/78884 diff --git a/gcc/testsuite/c-c++-common/gomp/reduction-task-3.c b/gcc/testsuite/c-c++-common/gomp/reduction-task-3.c new file mode 100644 index 000000000000..bde2ccb8791e --- /dev/null +++ b/gcc/testsuite/c-c++-common/gomp/reduction-task-3.c @@ -0,0 +1,12 @@ +/* PR c/91149 */ + +int r; + +void +foo (void) +{ + #pragma omp parallel reduction(task, +: r) + r++; + #pragma omp target parallel reduction(task, +: r) + r++; +} -- 2.47.2