[gcc(refs/users/mikael/heads/refactor_descriptor_v08)] Refactoring get_dtype_comp
Mikael Morin
mikael@gcc.gnu.org
Wed Sep 17 16:45:18 GMT 2025
https://gcc.gnu.org/g:14b97526867485fb5230c2bbf596c3e89ae84f7e
commit 14b97526867485fb5230c2bbf596c3e89ae84f7e
Author: Mikael Morin <mikael@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
More information about the Gcc-cvs
mailing list