https://gcc.gnu.org/g:1af23b40dd010061be1e424c4f3574ca4c7a3986

commit 1af23b40dd010061be1e424c4f3574ca4c7a3986
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Wed Aug 6 14:41:41 2025 +0200

    Refactor get_descr_dim_comp

Diff:
---
 gcc/fortran/trans-descriptor.cc | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc
index e7853880a232..5ebd3a10a868 100644
--- a/gcc/fortran/trans-descriptor.cc
+++ b/gcc/fortran/trans-descriptor.cc
@@ -512,18 +512,17 @@ gfc_conv_descriptor_token_set (stmtblock_t *block, tree 
desc, tree value)
 
 
 static tree
-gfc_conv_descriptor_subfield (tree desc, tree dim, unsigned field_idx)
+get_descr_dim_comp (tree desc, tree dim, unsigned field_idx,
+                   tree type = NULL_TREE)
 {
   tree tmp = get_descriptor_dimension (desc, dim);
-  return get_ref_comp (tmp, field_idx);
+  return get_ref_comp (tmp, field_idx, type);
 }
 
 static tree
 get_descriptor_stride (tree desc, tree dim)
 {
-  tree field = gfc_conv_descriptor_subfield (desc, dim, STRIDE_SUBFIELD);
-  gcc_assert (TREE_TYPE (field) == gfc_array_index_type);
-  return field;
+  return get_descr_dim_comp (desc, dim, STRIDE_SUBFIELD, gfc_array_index_type);
 }
 
 tree
@@ -554,9 +553,7 @@ gfc_conv_descriptor_stride_set (stmtblock_t *block, tree 
desc,
 static tree
 get_descriptor_lbound (tree desc, tree dim)
 {
-  tree field = gfc_conv_descriptor_subfield (desc, dim, LBOUND_SUBFIELD);
-  gcc_assert (TREE_TYPE (field) == gfc_array_index_type);
-  return field;
+  return get_descr_dim_comp (desc, dim, LBOUND_SUBFIELD, gfc_array_index_type);
 }
 
 tree
@@ -576,9 +573,7 @@ gfc_conv_descriptor_lbound_set (stmtblock_t *block, tree 
desc,
 static tree
 get_descriptor_ubound (tree desc, tree dim)
 {
-  tree field = gfc_conv_descriptor_subfield (desc, dim, UBOUND_SUBFIELD);
-  gcc_assert (TREE_TYPE (field) == gfc_array_index_type);
-  return field;
+  return get_descr_dim_comp (desc, dim, UBOUND_SUBFIELD, gfc_array_index_type);
 }
 
 tree

Reply via email to