C, C++, Fortran, OpenMP: Add support for 'flush seq_cst' construct.
authorMarcel Vollweiler <marcel@codesourcery.com>
Tue, 7 Sep 2021 10:46:28 +0000 (03:46 -0700)
committerMarcel Vollweiler <marcel@codesourcery.com>
Tue, 7 Sep 2021 10:46:28 +0000 (03:46 -0700)
commitba1cc6956b956eb5b92c45af79a8b1fe426ec4d3
treeeb53edb25868ea05aecaeb9c04a7eca9fcadc0b7
parentaad72d2ea8378e1a56c00d15daa4bdcac8a5ae39
C, C++, Fortran, OpenMP: Add support for 'flush seq_cst' construct.

This patch adds support for the 'seq_cst' memory order clause on the 'flush'
directive which was introduced in OpenMP 5.1.

gcc/c-family/ChangeLog:

* c-omp.c (c_finish_omp_flush): Handle MEMMODEL_SEQ_CST.

gcc/c/ChangeLog:

* c-parser.c (c_parser_omp_flush): Parse 'seq_cst' clause on 'flush'
directive.

gcc/cp/ChangeLog:

* parser.c (cp_parser_omp_flush): Parse 'seq_cst' clause on 'flush'
directive.
* semantics.c (finish_omp_flush): Handle MEMMODEL_SEQ_CST.

gcc/fortran/ChangeLog:

* openmp.c (gfc_match_omp_flush): Parse 'seq_cst' clause on 'flush'
directive.
* trans-openmp.c (gfc_trans_omp_flush): Handle OMP_MEMORDER_SEQ_CST.

gcc/testsuite/ChangeLog:

* c-c++-common/gomp/flush-1.c: Add test case for 'seq_cst'.
* c-c++-common/gomp/flush-2.c: Add test case for 'seq_cst'.
* g++.dg/gomp/attrs-1.C: Adapt test to handle all flush clauses.
* g++.dg/gomp/attrs-2.C: Adapt test to handle all flush clauses.
* gfortran.dg/gomp/flush-1.f90: Add test case for 'seq_cst'.
* gfortran.dg/gomp/flush-2.f90: Add test case for 'seq_cst'.
12 files changed:
gcc/c-family/c-omp.c
gcc/c/c-parser.c
gcc/cp/parser.c
gcc/cp/semantics.c
gcc/fortran/openmp.c
gcc/fortran/trans-openmp.c
gcc/testsuite/c-c++-common/gomp/flush-1.c
gcc/testsuite/c-c++-common/gomp/flush-2.c
gcc/testsuite/g++.dg/gomp/attrs-1.C
gcc/testsuite/g++.dg/gomp/attrs-2.C
gcc/testsuite/gfortran.dg/gomp/flush-1.f90
gcc/testsuite/gfortran.dg/gomp/flush-2.f90