https://gcc.gnu.org/g:02dc3ec4ace5daed3a32303473050e1af6743ab1

commit 02dc3ec4ace5daed3a32303473050e1af6743ab1
Author: Mikael Morin <[email protected]>
Date:   Wed Jul 16 16:49:28 2025 +0200

    Extraction fonction gfc_nullify_descriptor

Diff:
---
 gcc/fortran/trans-descriptor.cc | 7 +++++++
 gcc/fortran/trans-descriptor.h  | 3 +++
 gcc/fortran/trans-expr.cc       | 2 +-
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/gcc/fortran/trans-descriptor.cc b/gcc/fortran/trans-descriptor.cc
index a43553b2e4de..cab0c62fde3d 100644
--- a/gcc/fortran/trans-descriptor.cc
+++ b/gcc/fortran/trans-descriptor.cc
@@ -781,3 +781,10 @@ gfc_grow_array (stmtblock_t * pblock, tree desc, tree 
extra)
   tmp = gfc_call_realloc (pblock, arg0, arg1);
   gfc_conv_descriptor_data_set (pblock, desc, tmp);
 }
+
+
+void
+gfc_nullify_descriptor (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 9982fa446a3b..717b1a28f677 100644
--- a/gcc/fortran/trans-descriptor.h
+++ b/gcc/fortran/trans-descriptor.h
@@ -74,4 +74,7 @@ void gfc_copy_descriptor (stmtblock_t *, tree, tree, int);
 
 void gfc_grow_array (stmtblock_t *, tree, tree);
 
+/* Build a null array descriptor constructor.  */
+void gfc_nullify_descriptor (stmtblock_t *block, tree);
+
 #endif /* GFC_TRANS_DESCRIPTOR_H */
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index c22e9dbcad38..df5300faa30c 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -11173,7 +11173,7 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, 
gfc_expr * expr2)
       if (expr2->expr_type == EXPR_NULL)
        {
          /* Just set the data pointer to null.  */
-         gfc_conv_descriptor_data_set (&lse.pre, lse.expr, null_pointer_node);
+         gfc_nullify_descriptor (&lse.pre, lse.expr);
        }
       else if (rank_remap)
        {

Reply via email to