[gcc(refs/users/mikael/heads/refactor_descriptor_v08)] Introduction gfc_init_descriptor_result
Mikael Morin
mikael@gcc.gnu.org
Mon Sep 8 20:28:48 GMT 2025
https://gcc.gnu.org/g:597fdba43c56fdaf9990b51a9a98a740b5d4a6c8
commit 597fdba43c56fdaf9990b51a9a98a740b5d4a6c8
Author: Mikael Morin <mikael@gcc.gnu.org>
Date: Sat Jul 19 15:55:36 2025 +0200
Introduction gfc_init_descriptor_result
Revert "Suppression gfc_init_descriptor_result"
This reverts commit 0f85f1e92970d2a0f13dc61a9781323f33a3b631.
Diff:
---
gcc/fortran/trans-decl.cc | 4 +---
gcc/fortran/trans-descriptor.cc | 7 +++++++
gcc/fortran/trans-descriptor.h | 1 +
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc
index 94d5aa30e8ce..5bba8c410b49 100644
--- a/gcc/fortran/trans-decl.cc
+++ b/gcc/fortran/trans-decl.cc
@@ -4787,14 +4787,12 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block)
else if (proc_sym == proc_sym->result && IS_CLASS_ARRAY (proc_sym))
{
/* Nullify explicit return class arrays on entry. */
- tree type;
tmp = get_proc_result (proc_sym);
if (tmp && GFC_CLASS_TYPE_P (TREE_TYPE (tmp)))
{
gfc_start_block (&init);
tmp = gfc_class_data_get (tmp);
- type = TREE_TYPE (gfc_conv_descriptor_data_get (tmp));
- gfc_conv_descriptor_data_set (&init, tmp, build_int_cst (type, 0));
+ gfc_init_descriptor_result (&init, tmp);
gfc_add_init_cleanup (block, gfc_finish_block (&init), NULL_TREE);
}
}
diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc
index 434091d399e9..e714a5a878e4 100644
--- a/gcc/fortran/trans-descriptor.cc
+++ b/gcc/fortran/trans-descriptor.cc
@@ -693,3 +693,10 @@ gfc_nullify_descriptor (stmtblock_t *block, tree descr)
{
gfc_conv_descriptor_data_set (block, descr, null_pointer_node);
}
+
+
+void
+gfc_init_descriptor_result (stmtblock_t *block, tree descr)
+{
+ gfc_conv_descriptor_data_set (block, descr, null_pointer_node);
+}
diff --git a/gcc/fortran/trans-descriptor.h b/gcc/fortran/trans-descriptor.h
index 2328d0dad6f6..e0935fc74d76 100644
--- a/gcc/fortran/trans-descriptor.h
+++ b/gcc/fortran/trans-descriptor.h
@@ -98,5 +98,6 @@ gfc_get_descriptor_offsets_for_info (const_tree desc_type, tree *data_off,
/* Build a null array descriptor constructor. */
void gfc_nullify_descriptor (stmtblock_t *block, tree);
+void gfc_init_descriptor_result (stmtblock_t *block, tree descr);
#endif /* GFC_TRANS_DESCRIPTOR_H */
More information about the Gcc-cvs
mailing list