https://gcc.gnu.org/g:1d8de7d39bb2ba9d0174e47619d43b5daa22975b
commit 1d8de7d39bb2ba9d0174e47619d43b5daa22975b Author: Mikael Morin <mik...@gcc.gnu.org> Date: Wed Aug 6 18:46:44 2025 +0200 Refactor set_value Diff: --- gcc/fortran/trans-descriptor.cc | 73 ++++++++++++----------------------------- 1 file changed, 21 insertions(+), 52 deletions(-) diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc index e22dcbd8a03b..83e2c83826d1 100644 --- a/gcc/fortran/trans-descriptor.cc +++ b/gcc/fortran/trans-descriptor.cc @@ -201,6 +201,14 @@ get_descr_comp (tree desc, unsigned field_idx, tree type = NULL_TREE) return get_ref_comp (desc, field_idx, type); } +void +set_value (stmtblock_t *block, tree ref, tree value) +{ + location_t loc = input_location; + gfc_add_modify_loc (loc, block, ref, + fold_convert_loc (loc, TREE_TYPE (ref), value)); +} + static tree get_descriptor_data (tree desc) @@ -234,10 +242,7 @@ gfc_conv_descriptor_data_get (tree desc) void gfc_conv_descriptor_data_set (stmtblock_t *block, tree desc, tree value) { - location_t loc = input_location; - tree field = get_descriptor_data (desc); - gfc_add_modify_loc (loc, block, field, - fold_convert_loc (loc, TREE_TYPE (field), value)); + set_value (block, get_descriptor_data (desc), value); } @@ -256,10 +261,7 @@ gfc_conv_descriptor_offset_get (tree desc) void gfc_conv_descriptor_offset_set (stmtblock_t *block, tree desc, tree value) { - location_t loc = input_location; - tree t = get_descriptor_offset (desc); - gfc_add_modify_loc (loc, block, t, - fold_convert_loc (loc, TREE_TYPE (t), value)); + set_value (block, get_descriptor_offset (desc), value); } @@ -278,10 +280,7 @@ gfc_conv_descriptor_dtype_get (tree desc) void gfc_conv_descriptor_dtype_set (stmtblock_t *block, tree desc, tree value) { - location_t loc = input_location; - tree t = get_descriptor_dtype (desc); - gfc_add_modify_loc (loc, block, t, - fold_convert_loc (loc, TREE_TYPE (t), value)); + set_value (block, get_descriptor_dtype (desc), value); } @@ -300,10 +299,7 @@ gfc_conv_descriptor_span_get (tree desc) void gfc_conv_descriptor_span_set (stmtblock_t *block, tree desc, tree value) { - location_t loc = input_location; - tree t = gfc_conv_descriptor_span (desc); - gfc_add_modify_loc (loc, block, t, - fold_convert_loc (loc, TREE_TYPE (t), value)); + set_value (block, gfc_conv_descriptor_span (desc), value); } @@ -330,10 +326,7 @@ gfc_conv_descriptor_rank_get (tree desc) void gfc_conv_descriptor_rank_set (stmtblock_t *block, tree desc, tree value) { - location_t loc = input_location; - tree t = get_descriptor_rank (desc); - gfc_add_modify_loc (loc, block, t, - fold_convert_loc (loc, TREE_TYPE (t), value)); + set_value (block, get_descriptor_rank (desc), value); } void @@ -357,10 +350,7 @@ gfc_conv_descriptor_version_get (tree desc) void gfc_conv_descriptor_version_set (stmtblock_t *block, tree desc, tree value) { - location_t loc = input_location; - tree t = get_descriptor_version (desc); - gfc_add_modify_loc (loc, block, t, - fold_convert_loc (loc, TREE_TYPE (t), value)); + set_value (block, get_descriptor_version (desc), value); } @@ -381,10 +371,7 @@ gfc_conv_descriptor_elem_len_get (tree desc) void gfc_conv_descriptor_elem_len_set (stmtblock_t *block, tree desc, tree value) { - location_t loc = input_location; - tree t = get_descriptor_elem_len (desc); - gfc_add_modify_loc (loc, block, t, - fold_convert_loc (loc, TREE_TYPE (t), value)); + set_value (block, get_descriptor_elem_len (desc), value); } @@ -403,10 +390,7 @@ gfc_conv_descriptor_type_get (tree desc) void gfc_conv_descriptor_type_set (stmtblock_t *block, tree desc, tree value) { - location_t loc = input_location; - tree t = get_descriptor_type (desc); - gfc_add_modify_loc (loc, block, t, - fold_convert_loc (loc, TREE_TYPE (t), value)); + set_value (block, get_descriptor_type (desc), value); } void @@ -480,10 +464,7 @@ void gfc_conv_descriptor_dimension_set (stmtblock_t *block, tree desc, tree dim, tree value) { - location_t loc = input_location; - tree t = get_descriptor_dimension (desc, dim); - gfc_add_modify_loc (loc, block, t, - fold_convert_loc (loc, TREE_TYPE (t), value)); + set_value (block, get_descriptor_dimension (desc, dim), value); } void @@ -508,10 +489,7 @@ gfc_conv_descriptor_token (tree desc) void gfc_conv_descriptor_token_set (stmtblock_t *block, tree desc, tree value) { - location_t loc = input_location; - tree t = gfc_conv_descriptor_token (desc); - gfc_add_modify_loc (loc, block, t, - fold_convert_loc (loc, TREE_TYPE (t), value)); + set_value (block, gfc_conv_descriptor_token (desc), value); } @@ -550,10 +528,7 @@ void gfc_conv_descriptor_stride_set (stmtblock_t *block, tree desc, tree dim, tree value) { - location_t loc = input_location; - tree t = get_descriptor_stride (desc, dim); - gfc_add_modify_loc (loc, block, t, - fold_convert_loc (loc, TREE_TYPE (t), value)); + set_value (block, get_descriptor_stride (desc, dim), value); } static tree @@ -572,10 +547,7 @@ void gfc_conv_descriptor_lbound_set (stmtblock_t *block, tree desc, tree dim, tree value) { - location_t loc = input_location; - tree t = get_descriptor_lbound (desc, dim); - gfc_add_modify_loc (loc, block, t, - fold_convert_loc (loc, TREE_TYPE (t), value)); + set_value (block, get_descriptor_lbound (desc, dim), value); } static tree @@ -594,10 +566,7 @@ void gfc_conv_descriptor_ubound_set (stmtblock_t *block, tree desc, tree dim, tree value) { - location_t loc = input_location; - tree t = get_descriptor_ubound (desc, dim); - gfc_add_modify_loc (loc, block, t, - fold_convert_loc (loc, TREE_TYPE (t), value)); + set_value (block, get_descriptor_ubound (desc, dim), value); }