From: Andrew Stubbs Date: Thu, 16 Dec 2021 15:30:05 +0000 (+0000) Subject: OpenMP: allow requires dynamic_allocators X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0054c3713652ba794d21c91f5ebb0326b016939a;p=thirdparty%2Fgcc.git OpenMP: allow requires dynamic_allocators There's no need to reject the dynamic_allocators requires directive because we actually do support the feature, and it doesn't have to actually "do" anything. gcc/c/ChangeLog: * c-parser.c (c_parser_omp_requires): Don't "sorry" dynamic_allocators. gcc/cp/ChangeLog: * parser.c (cp_parser_omp_requires): Don't "sorry" dynamic_allocators. gcc/fortran/ChangeLog: * openmp.c (gfc_match_omp_requires): Don't "sorry" dynamic_allocators. gcc/testsuite/ChangeLog: * gfortran.dg/gomp/requires-8.f90: Reinstate dynamic allocators requirement. --- diff --git a/gcc/c/ChangeLog.omp b/gcc/c/ChangeLog.omp index d24d18600f8a..abe8886f4e66 100644 --- a/gcc/c/ChangeLog.omp +++ b/gcc/c/ChangeLog.omp @@ -1,3 +1,7 @@ +2021-12-22 Andrew Stubbs + + * c-parser.c (c_parser_omp_requires): Don't "sorry" dynamic_allocators. + 2021-10-15 Tobias Burnus Backported from master: diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index 86784035ea05..f11281a79117 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -22509,9 +22509,6 @@ c_parser_omp_requires (c_parser *parser) c_parser_skip_to_pragma_eol (parser, false); return; } - if (this_req == OMP_REQUIRES_DYNAMIC_ALLOCATORS) - sorry_at (cloc, "%qs clause on % directive not " - "supported yet", p); if (p) c_parser_consume_token (parser); if (this_req) diff --git a/gcc/cp/ChangeLog.omp b/gcc/cp/ChangeLog.omp index 882c09510b7f..38be315d3864 100644 --- a/gcc/cp/ChangeLog.omp +++ b/gcc/cp/ChangeLog.omp @@ -1,3 +1,7 @@ +2021-12-22 Andrew Stubbs + + * parser.c (cp_parser_omp_requires): Don't "sorry" dynamic_allocators. + 2021-10-27 Tobias Burnus Backported from master: diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 008b5c016eac..f2d34881a5ea 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -46046,9 +46046,6 @@ cp_parser_omp_requires (cp_parser *parser, cp_token *pragma_tok) cp_parser_skip_to_pragma_eol (parser, pragma_tok); return false; } - if (this_req == OMP_REQUIRES_DYNAMIC_ALLOCATORS) - sorry_at (cloc, "%qs clause on % directive not " - "supported yet", p); if (p) cp_lexer_consume_token (parser->lexer); if (this_req) diff --git a/gcc/fortran/ChangeLog.omp b/gcc/fortran/ChangeLog.omp index 894ca5c78e40..d909d6e3ddfb 100644 --- a/gcc/fortran/ChangeLog.omp +++ b/gcc/fortran/ChangeLog.omp @@ -1,3 +1,7 @@ +2021-12-22 Andrew Stubbs + + * openmp.c (gfc_match_omp_requires): Don't "sorry" dynamic_allocators. + 2021-10-27 Tobias Burnus Backport from master: diff --git a/gcc/fortran/openmp.c b/gcc/fortran/openmp.c index 1f5cc5be599b..50264ffc8a3b 100644 --- a/gcc/fortran/openmp.c +++ b/gcc/fortran/openmp.c @@ -5298,10 +5298,6 @@ gfc_match_omp_requires (void) else goto error; - /* Currently, everything except 'dynamic_allocators' is allowed. */ - if (requires_clause == OMP_REQ_DYNAMIC_ALLOCATORS) - gfc_error_now ("Sorry, %qs clause at %L on REQUIRES directive is not " - "yet supported", clause, &old_loc); if (!gfc_omp_requires_add_clause (requires_clause, clause, &old_loc, NULL)) goto error; requires_clauses |= requires_clause; diff --git a/gcc/testsuite/ChangeLog.omp b/gcc/testsuite/ChangeLog.omp index 6016e798b5d5..3be99da018d9 100644 --- a/gcc/testsuite/ChangeLog.omp +++ b/gcc/testsuite/ChangeLog.omp @@ -1,3 +1,8 @@ +2021-12-22 Andrew Stubbs + + * gfortran.dg/gomp/requires-8.f90: Reinstate dynamic allocators + requirement. + 2021-11-10 Tobias Burnus Backported from master: diff --git a/gcc/testsuite/gfortran.dg/gomp/requires-8.f90 b/gcc/testsuite/gfortran.dg/gomp/requires-8.f90 index 3819b0c28cc2..e84d609ad298 100644 --- a/gcc/testsuite/gfortran.dg/gomp/requires-8.f90 +++ b/gcc/testsuite/gfortran.dg/gomp/requires-8.f90 @@ -4,7 +4,7 @@ contains subroutine foo interface subroutine bar2 - !$!omp requires dynamic_allocators + !$omp requires dynamic_allocators end subroutine end interface !$omp target