[gcc(refs/users/mikael/heads/refactor_descriptor_v07)] Correction gfc_conv_descriptor_offset

Mikael Morin mikael@gcc.gnu.org
Mon Jun 30 09:49:17 GMT 2025


https://gcc.gnu.org/g:413e7bf6dc1d4617955eb35ca320b844436dc274

commit 413e7bf6dc1d4617955eb35ca320b844436dc274
Author: Mikael Morin <mikael@gcc.gnu.org>
Date:   Sat Jun 28 21:46:31 2025 +0200

    Correction gfc_conv_descriptor_offset

Diff:
---
 gcc/fortran/trans-array.cc      | 5 ++---
 gcc/fortran/trans-descriptor.cc | 8 ++++----
 gcc/fortran/trans-descriptor.h  | 1 -
 3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index daa1b46469c5..ad435ac777ef 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -8833,9 +8833,8 @@ gfc_conv_array_parameter (gfc_se *se, gfc_expr *expr, bool g77,
 	      new_field = gfc_conv_descriptor_dtype (new_desc);
 	      gfc_add_modify (&se->pre, new_field, old_field);
 
-	      old_field = gfc_conv_descriptor_offset (old_desc);
-	      new_field = gfc_conv_descriptor_offset (new_desc);
-	      gfc_add_modify (&se->pre, new_field, old_field);
+	      old_field = gfc_conv_descriptor_offset_get (old_desc);
+	      gfc_conv_descriptor_offset_set (&se->pre, new_desc, old_field);
 
 	      for (int i = 0; i < expr->rank; i++)
 		{
diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc
index 3d14581e3958..bf7e24f77f26 100644
--- a/gcc/fortran/trans-descriptor.cc
+++ b/gcc/fortran/trans-descriptor.cc
@@ -224,8 +224,8 @@ gfc_conv_descriptor_data_addr (tree desc)
   return gfc_build_addr_expr (NULL_TREE, field);
 }
 
-tree
-gfc_conv_descriptor_offset (tree desc)
+static tree
+get_descriptor_offset (tree desc)
 {
   tree field = gfc_get_descriptor_field (desc, OFFSET_FIELD);
   gcc_assert (TREE_TYPE (field) == gfc_array_index_type);
@@ -235,14 +235,14 @@ gfc_conv_descriptor_offset (tree desc)
 tree
 gfc_conv_descriptor_offset_get (tree desc)
 {
-  return non_lvalue_loc (input_location, gfc_conv_descriptor_offset (desc));
+  return non_lvalue_loc (input_location, get_descriptor_offset (desc));
 }
 
 void
 gfc_conv_descriptor_offset_set (stmtblock_t *block, tree desc,
 				tree value)
 {
-  tree t = gfc_conv_descriptor_offset (desc);
+  tree t = get_descriptor_offset (desc);
   gfc_add_modify (block, t, fold_convert (TREE_TYPE (t), value));
 }
 
diff --git a/gcc/fortran/trans-descriptor.h b/gcc/fortran/trans-descriptor.h
index f60a32c7131c..bdf02e0096ea 100644
--- a/gcc/fortran/trans-descriptor.h
+++ b/gcc/fortran/trans-descriptor.h
@@ -39,7 +39,6 @@ tree gfc_conv_descriptor_type (tree desc);
 tree gfc_get_descriptor_dimension (tree desc);
 tree gfc_conv_descriptor_dimension (tree desc, tree dim);
 tree gfc_conv_descriptor_token (tree desc);
-tree gfc_conv_descriptor_offset (tree desc);
 
 tree gfc_conv_descriptor_data_get (tree desc);
 tree gfc_conv_descriptor_offset_get (tree desc);


More information about the Gcc-cvs mailing list