https://gcc.gnu.org/g:413e7bf6dc1d4617955eb35ca320b844436dc274
commit 413e7bf6dc1d4617955eb35ca320b844436dc274 Author: Mikael Morin <mik...@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);