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