[gcc(refs/users/mikael/heads/refactor_descriptor_v291.01)] Refactoring gfc_get_scalar_to_descriptor_type

Mikael Morin via Gcc-cvs <[email protected]>
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
https://gcc.gnu.org/g:37963009f7642839c9aa7dc7af34e77579c704b6

commit 37963009f7642839c9aa7dc7af34e77579c704b6
Author: Mikael Morin <[email protected]>
Date:   Thu Aug 7 14:05:20 2025 +0200

    Refactoring gfc_get_scalar_to_descriptor_type
    
    Correction gfc_get_scalar_to_descriptor_type
    
    Correction gfc_get_scalar_to_descriptor_type

Diff:
---
 gcc/fortran/trans-expr.cc  |  6 +++---
 gcc/fortran/trans-types.cc | 15 +++++++--------
 2 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 2088f1319beb..86579b229992 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -96,7 +96,7 @@ gfc_conv_scalar_to_descriptor (gfc_se *se, tree scalar, symbol_attribute attr)
 {
   tree desc, type, etype;
 
-  type = gfc_get_scalar_to_descriptor_type (scalar, attr);
+  type = gfc_get_scalar_to_descriptor_type (TREE_TYPE (scalar), attr);
   etype = TREE_TYPE (scalar);
   desc = gfc_create_var (type, "desc");
   DECL_ARTIFICIAL (desc) = 1;
@@ -938,7 +938,7 @@ gfc_conv_derived_to_class (gfc_se *parmse, gfc_expr *e, gfc_symbol *fsym,
 	  if (fsym->ts.u.derived->components->as)
 	    {
 	      tree type;
-	      type = gfc_get_scalar_to_descriptor_type (parmse->expr,
+	      type = gfc_get_scalar_to_descriptor_type (TREE_TYPE (parmse->expr),
 							gfc_expr_attr (e));
 	      gfc_conv_descriptor_dtype_set (&parmse->pre, ctree,
 					     gfc_get_dtype (type));
@@ -1379,7 +1379,7 @@ gfc_conv_class_to_class (gfc_se *parmse, gfc_expr *e, gfc_typespec class_ts,
     {
       if (e->rank == 0)
 	{
-	  tree type = gfc_get_scalar_to_descriptor_type (parmse->expr,
+	  tree type = gfc_get_scalar_to_descriptor_type (TREE_TYPE (parmse->expr),
 							 gfc_expr_attr (e));
 	  gfc_conv_descriptor_dtype_set (&block, ctree,
 					 gfc_get_dtype (type));
diff --git a/gcc/fortran/trans-types.cc b/gcc/fortran/trans-types.cc
index 823aa75a2da0..a7bc778ffba7 100644
--- a/gcc/fortran/trans-types.cc
+++ b/gcc/fortran/trans-types.cc
@@ -2270,7 +2270,7 @@ gfc_get_array_type_bounds (tree etype, int dimen, int codimen, tree * lbound,
    arrays.  */
 
 tree
-gfc_get_scalar_to_descriptor_type (tree scalar, symbol_attribute attr)
+gfc_get_scalar_to_descriptor_type (tree scalar_type, symbol_attribute attr)
 {
   enum gfc_array_kind akind;
 
@@ -2281,21 +2281,20 @@ gfc_get_scalar_to_descriptor_type (tree scalar, symbol_attribute attr)
   else
     akind = GFC_ARRAY_ASSUMED_SHAPE_CONT;
 
-  if (POINTER_TYPE_P (TREE_TYPE (scalar)))
-    scalar = TREE_TYPE (scalar);
+  if (POINTER_TYPE_P (scalar_type))
+    scalar_type = TREE_TYPE (scalar_type);
 
   tree *lbound = NULL, *ubound = NULL;
   int codim = 0;
-  if (TYPE_LANG_SPECIFIC (TREE_TYPE (scalar)))
+  if (TYPE_LANG_SPECIFIC (scalar_type))
     {
-      struct lang_type *lang_specific = TYPE_LANG_SPECIFIC (TREE_TYPE (scalar));
+      struct lang_type *lang_specific = TYPE_LANG_SPECIFIC (scalar_type);
       codim = lang_specific->corank;
       lbound = lang_specific->lbound;
       ubound = lang_specific->ubound;
     }
-  return gfc_get_array_type_bounds (TREE_TYPE (scalar), 0, codim, lbound,
-				    ubound, 1, akind,
-				    !(attr.pointer || attr.target));
+  return gfc_get_array_type_bounds (scalar_type, 0, codim, lbound, ubound, 1,
+				    akind, !(attr.pointer || attr.target));
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.