https://gcc.gnu.org/g:eed2ca30e49d8177921e8c01cdd4af69ac5e9892
commit r17-1613-geed2ca30e49d8177921e8c01cdd4af69ac5e9892 Author: Tobias Burnus <[email protected]> Date: Wed Jun 17 12:16:55 2026 +0200 Fortran/OpenMP: Rename declare-mapper struct members The usm->mapper_id vs. usm->usm->mapper_id and also the usm->usm itself was a bit confusing. Hence, this is now: usm->requested_mapper_id usm->resolved_usm where the latter has usm->resolved_usm->mapper_id Hereby, usm->requested_mapper_id is set for a map/to/from clause such as 'map(mapper(my_name), to: x' - while the resolved_usm points to an object that has been created by 'declare mapper'. gcc/fortran/ChangeLog: * gfortran.h (struct gfc_omp_udm): Add comment. (struct gfc_omp_namelist_udm): Likewise; rename members mapper_id to requested_mapper_id and usm to resolved_usm. * module.cc (load_omp_udms, write_omp_udm): Update accordingly. * openmp.cc (gfc_match_omp_clauses, resolve_omp_clauses): Likewise. * trans-openmp.cc (gfc_trans_omp_clauses): Likewise. Diff: --- gcc/fortran/gfortran.h | 7 ++++--- gcc/fortran/module.cc | 12 ++++++------ gcc/fortran/openmp.cc | 10 +++++----- gcc/fortran/trans-openmp.cc | 4 ++-- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index 801dd856e1b7..ecbd4612bbea 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -1900,7 +1900,7 @@ typedef struct gfc_omp_namelist_udr gfc_omp_namelist_udr; #define gfc_get_omp_namelist_udr() XCNEW (gfc_omp_namelist_udr) - +/* Store list of user-defined mapper (created by 'omp declare mapper'). */ typedef struct gfc_omp_udm { struct gfc_omp_udm *next; @@ -1922,10 +1922,11 @@ typedef struct gfc_omp_udm gfc_omp_udm; #define gfc_get_omp_udm() XCNEW (gfc_omp_udm) +/* Mapper data for a MAP or TO/FROM list item. */ typedef struct gfc_omp_namelist_udm { - const char *mapper_id; - struct gfc_omp_udm *udm; + const char *requested_mapper_id; + struct gfc_omp_udm *resolved_udm; } gfc_omp_namelist_udm; #define gfc_get_omp_namelist_udm() XCNEW (gfc_omp_namelist_udm) diff --git a/gcc/fortran/module.cc b/gcc/fortran/module.cc index b95997fe672b..3bb81bab68a5 100644 --- a/gcc/fortran/module.cc +++ b/gcc/fortran/module.cc @@ -5565,12 +5565,12 @@ load_omp_udms (void) if (peek_atom () != ATOM_RPAREN) { n->u3.udm = gfc_get_omp_namelist_udm (); - mio_pool_string (&n->u3.udm->mapper_id); + mio_pool_string (&n->u3.udm->requested_mapper_id); - if (n->u3.udm->mapper_id == NULL) - n->u3.udm->mapper_id = gfc_get_string ("%s", ""); + if (n->u3.udm->requested_mapper_id == NULL) + n->u3.udm->requested_mapper_id = gfc_get_string ("%s", ""); - mio_pointer_ref (&n->u3.udm->udm); + mio_pointer_ref (&n->u3.udm->resolved_udm); } mio_rparen (); @@ -6687,8 +6687,8 @@ write_omp_udm (gfc_omp_udm *udm) if (n->u3.udm) { - mio_pool_string (&n->u3.udm->mapper_id); - mio_pointer_ref (&n->u3.udm->udm); + mio_pool_string (&n->u3.udm->requested_mapper_id); + mio_pointer_ref (&n->u3.udm->resolved_udm); } mio_rparen (); diff --git a/gcc/fortran/openmp.cc b/gcc/fortran/openmp.cc index c341afc762ea..526ad03c8281 100644 --- a/gcc/fortran/openmp.cc +++ b/gcc/fortran/openmp.cc @@ -3940,7 +3940,7 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, const omp_mask mask, if (mapper_id[0] != '\0') { n->u3.udm = gfc_get_omp_namelist_udm (); - n->u3.udm->mapper_id + n->u3.udm->requested_mapper_id = gfc_get_string ("%s", mapper_id); } n->u2.ns = ns_iter; @@ -10504,8 +10504,8 @@ resolve_omp_clauses (gfc_code *code, gfc_omp_clauses *omp_clauses, if (ts->type == BT_DERIVED || ts->type == BT_CLASS) { - const char *mapper_id = (n->u3.udm - ? n->u3.udm->mapper_id : ""); + const char *mapper_id + = (n->u3.udm ? n->u3.udm->requested_mapper_id : ""); gfc_omp_udm *udm = gfc_find_omp_udm (gfc_current_ns, mapper_id, ts); if (mapper_id[0] != '\0' && !udm) @@ -10517,9 +10517,9 @@ resolve_omp_clauses (gfc_code *code, gfc_omp_clauses *omp_clauses, { gcc_assert (mapper_id[0] == '\0'); n->u3.udm = gfc_get_omp_namelist_udm (); - n->u3.udm->mapper_id = mapper_id; + n->u3.udm->requested_mapper_id = mapper_id; } - n->u3.udm->udm = udm; + n->u3.udm->resolved_udm = udm; } } } diff --git a/gcc/fortran/trans-openmp.cc b/gcc/fortran/trans-openmp.cc index 84f9ffb51297..11873d3b6fed 100644 --- a/gcc/fortran/trans-openmp.cc +++ b/gcc/fortran/trans-openmp.cc @@ -4343,8 +4343,8 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses, if (n->u3.udm) gfc_error ("Sorry, declared mapper %qs, used for %qs at %L, " "is not yet supported", - n->u3.udm->mapper_id[0] != '\0' - ? n->u3.udm->mapper_id : "default", + n->u3.udm->requested_mapper_id[0] != '\0' + ? n->u3.udm->requested_mapper_id : "default", n->sym->name, &n->where); // Remove duplicates
