https://gcc.gnu.org/g:69598abe75a6f5ecad89e75c3156070fa0b2e025
commit 69598abe75a6f5ecad89e75c3156070fa0b2e025 Author: Mikael Morin <mik...@gcc.gnu.org> Date: Wed Aug 6 14:38:03 2025 +0200 Refactoring get_dtype_comp Diff: --- gcc/fortran/trans-descriptor.cc | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc index 6888ff508d67..e7853880a232 100644 --- a/gcc/fortran/trans-descriptor.cc +++ b/gcc/fortran/trans-descriptor.cc @@ -304,12 +304,17 @@ gfc_conv_descriptor_span_set (stmtblock_t *block, tree desc, tree value) static tree -get_descriptor_rank (tree desc) +get_dtype_comp (tree desc, unsigned field_idx, tree type = NULL_TREE) { - tree dtype; + tree dtype_ref = get_descriptor_dtype (desc); + return get_ref_comp (dtype_ref, field_idx, type); +} + - dtype = get_descriptor_dtype (desc); - return get_ref_comp (dtype, GFC_DTYPE_RANK, signed_char_type_node); +static tree +get_descriptor_rank (tree desc) +{ + return get_dtype_comp (desc, GFC_DTYPE_RANK, signed_char_type_node); } tree @@ -336,10 +341,7 @@ gfc_conv_descriptor_rank_set (stmtblock_t *block, tree desc, int value) static tree get_descriptor_version (tree desc) { - tree dtype; - - dtype = get_descriptor_dtype (desc); - return get_ref_comp (dtype, GFC_DTYPE_VERSION, integer_type_node); + return get_dtype_comp (desc, GFC_DTYPE_VERSION, integer_type_node); } tree @@ -363,10 +365,7 @@ gfc_conv_descriptor_version_set (stmtblock_t *block, tree desc, tree value) static tree get_descriptor_elem_len (tree desc) { - tree dtype; - - dtype = get_descriptor_dtype (desc); - return get_ref_comp (dtype, GFC_DTYPE_ELEM_LEN, size_type_node); + return get_dtype_comp (desc, GFC_DTYPE_ELEM_LEN, size_type_node); } tree @@ -388,10 +387,7 @@ gfc_conv_descriptor_elem_len_set (stmtblock_t *block, tree desc, tree value) static tree get_descriptor_type (tree desc) { - tree dtype; - - dtype = get_descriptor_dtype (desc); - return get_ref_comp (dtype, GFC_DTYPE_TYPE, signed_char_type_node); + return get_dtype_comp (desc, GFC_DTYPE_TYPE, signed_char_type_node); } tree