[gcc(refs/users/mikael/heads/refactor_descriptor_v08)] Refactor set_value
Mikael Morin
mikael@gcc.gnu.org
Fri Sep 19 19:15:22 GMT 2025
https://gcc.gnu.org/g:c9893b36cec17a1c0c7857c144a6dda80f33ca1a
commit c9893b36cec17a1c0c7857c144a6dda80f33ca1a
Author: Mikael Morin <mikael@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);
}
More information about the Gcc-cvs
mailing list