Fortran/OpenMP: Support 'omp parallel master'
authorTobias Burnus <tobias@codesourcery.com>
Fri, 14 May 2021 17:21:47 +0000 (19:21 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Fri, 14 May 2021 17:21:47 +0000 (19:21 +0200)
commit0e3702f8daeec5897982d185650b78a5c1c53c25
tree71d5ab38dc9b5a3312ee5df07f2d3aa1ed8d4111
parent62e1bd651f60cfe3daaad91b41b7612bc7fa7460
Fortran/OpenMP: Support 'omp parallel master'

gcc/fortran/ChangeLog:

* dump-parse-tree.c (show_omp_node, show_code_node): Handle
EXEC_OMP_PARALLEL_MASTER.
* frontend-passes.c (gfc_code_walker): Likewise.
* gfortran.h (enum gfc_statement): Add ST_OMP_PARALLEL_MASTER and
ST_OMP_END_PARALLEL_MASTER.
(enum gfc_exec_op): Add EXEC_OMP_PARALLEL_MASTER..
* match.h (gfc_match_omp_parallel_master): Handle it.
* openmp.c (gfc_match_omp_parallel_master, resolve_omp_clauses,
omp_code_to_statement, gfc_resolve_omp_directive): Likewise.
* parse.c (decode_omp_directive, case_exec_markers,
gfc_ascii_statement, parse_omp_structured_block,
parse_executable): Likewise.
* resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
* st.c (gfc_free_statement): Likewise.
* trans-openmp.c (gfc_trans_omp_parallel_master,
gfc_trans_omp_workshare, gfc_trans_omp_directive): Likewise.
* trans.c (trans_code): Likewise.

libgomp/ChangeLog:

* testsuite/libgomp.fortran/parallel-master.f90: New test.

gcc/testsuite/ChangeLog:

* gfortran.dg/gomp/parallel-master-1.f90: New test.
* gfortran.dg/gomp/parallel-master-2.f90: New test.
13 files changed:
gcc/fortran/dump-parse-tree.c
gcc/fortran/frontend-passes.c
gcc/fortran/gfortran.h
gcc/fortran/match.h
gcc/fortran/openmp.c
gcc/fortran/parse.c
gcc/fortran/resolve.c
gcc/fortran/st.c
gcc/fortran/trans-openmp.c
gcc/fortran/trans.c
gcc/testsuite/gfortran.dg/gomp/parallel-master-1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/gomp/parallel-master-2.f90 [new file with mode: 0644]
libgomp/testsuite/libgomp.fortran/parallel-master.f90 [new file with mode: 0644]