[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:7ca9852ea314ea7db8e4e23c0d22f1cf8d17cfb4

commit 7ca9852ea314ea7db8e4e23c0d22f1cf8d17cfb4
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 4fddffaecd1e..a36734564b7f 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.