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

Reply via email to