[committed] Fortran/OpenMP: cleanup gfc_free_omp_namelist
Tobias Burnus <[email protected]>
| Newsgroups | gmane.comp.gcc.patches,gmane.comp.gcc.fortran |
|---|---|
| Message-ID | <[email protected]> |
One has to admit that gfc_free_omp_namelist got a bit unhandy. Solution pass the OMP_LIST_ enum value instead of a bunch of booleans. The change has been split-off from Julian's mapper patch, which otherwise had to add another boolean. Contrary to his patch, it adds a name to the enum and uses the enum; the argument is also mandatory to make the caller think whether it is needed or not. And it also replaces 0 byOMP_LIST_FIRST (=OMP_LIST_PRIVATE) to avoid magic numbers. Julian's patch is part of commit on OG14 (devel/omp/gcc-14) 015cb4002d6 OpenMP: Fortran "!$omp declare mapper" support aliashttps://gcc.gnu.org/g:015cb4002d6 - originally put on OG13 as 6d82b6c4156 Jun 30, 2023.(Post-commit) comments, remarks, suggestions? Committed as r17-279-g357207648f16ee Tobias PS: Next step is to add the Fortran parser support parts of Julian's declare-mapper commit.
committed.diff
(text/x-patch, 1.7 KB)
commit 357207648f16eeb6768e081d320bf131a33316fc Author: Tobias Burnus <[email protected]> Date: Sat May 2 22:25:48 2026 +0200 Fortran/OpenMP: cleanup gfc_free_omp_namelist Move the logic to deduce what needs to be freed from the caller to the callee by passing the OMP_LIST_... enum value instead of multiple bool arguments to gfc_free_omp_namelist. Additionally, add the name 'gfc_omp_list_type' to the existing OMP_LIST_... enum values and OMP_LIST_NONE (== OMP_LIST_NUM) as special value. As an enum is available, use it properly and replace 0 by OMP_LIST_FIRST in the list walks. gcc/fortran/ChangeLog: * gfortran.h (enum gfc_omp_list_type): Add this name to the existing OMP_LIST... enum; add OMP_LIST_NONE. (gfc_free_omp_namelist): Take that enum as arg instead of bool args. * match.cc (gfc_free_omp_namelist): Update. * openmp.cc (gfc_free_omp_clauses, gfc_free_omp_declare_variant_list, gfc_match_omp_clause_reduction, gfc_match_omp_clauses, gfc_match_omp_allocate, gfc_match_omp_flush, gfc_match_omp_declare_target, resolve_omp_clauses, gfc_resolve_omp_parallel_blocks, resolve_omp_do, gfc_resolve_oacc_blocks, gfc_resolve_oacc_declare): Update gfc_free_omp_namelist call and used enum type instead of int. * st.cc (gfc_free_statement): Likewise. Co-Authored-By: Julian Brown <[email protected]> gcc/fortran/gfortran.h | 7 ++-- gcc/fortran/match.cc | 9 +++-- gcc/fortran/openmp.cc | 95 ++++++++++++++++++++++++++------------------------ gcc/fortran/st.cc | 2 +- 4 files changed, 61 insertions(+), 52 deletions(-)