diff options
author | Chung-Lin Tang <cltang@codesourcery.com> | 2019-02-19 14:10:15 +0000 |
---|---|---|
committer | Chung-Lin Tang <cltang@gcc.gnu.org> | 2019-02-19 14:10:15 +0000 |
commit | 19695f4d99e51181c37958680c99502e6f4edd08 (patch) | |
tree | c8cfec47a9c4cbc6e7d3353936b79246d8014e3f /gcc/fortran | |
parent | 83fce9004a100215ac1b5e1ea5e1084bd2667c66 (diff) | |
download | gcc-19695f4d99e51181c37958680c99502e6f4edd08.zip gcc-19695f4d99e51181c37958680c99502e6f4edd08.tar.gz gcc-19695f4d99e51181c37958680c99502e6f4edd08.tar.bz2 |
re PR c/87924 (OpenACC wait clauses without async-arguments)
2019-02-19 Chung-Lin Tang <cltang@codesourcery.com>
PR c/87924
gcc/c/
* c-parser.c (c_parser_oacc_clause_wait): Add representation of wait
clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments.
gcc/cp/
* parser.c (cp_parser_oacc_clause_wait): Add representation of wait
clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments.
gcc/fortran/
* openmp.c (gfc_match_omp_clauses): Add representation of wait clause
without argument as 'wait (GOMP_ASYNC_NOVAL)'.
libgomp/
* oacc-parallel.c (GOACC_parallel_keyed): Remove condition on call to
goacc_wait().
(goacc_wait): Handle ACC_ASYNC_NOVAL case, remove goacc_thread() call
and related adjustment.
Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
From-SVN: r269016
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/openmp.c | 14 |
2 files changed, 19 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 43eda8c..989bf9a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2019-02-19 Chung-Lin Tang <cltang@codesourcery.com> + + PR c/87924 + * openmp.c (gfc_match_omp_clauses): Add representation of wait clause + without argument as 'wait (GOMP_ASYNC_NOVAL)'. + 2019-02-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/87689 diff --git a/gcc/fortran/openmp.c b/gcc/fortran/openmp.c index 8651afa..11dd3ae 100644 --- a/gcc/fortran/openmp.c +++ b/gcc/fortran/openmp.c @@ -1885,7 +1885,19 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, const omp_mask mask, break; } else if (m == MATCH_NO) - needs_space = true; + { + gfc_expr *expr + = gfc_get_constant_expr (BT_INTEGER, + gfc_default_integer_kind, + &gfc_current_locus); + mpz_set_si (expr->value.integer, GOMP_ASYNC_NOVAL); + gfc_expr_list **expr_list = &c->wait_list; + while (*expr_list) + expr_list = &(*expr_list)->next; + *expr_list = gfc_get_expr_list (); + (*expr_list)->expr = expr; + needs_space = true; + } continue; } if ((mask & OMP_CLAUSE_WORKER) |