https://gcc.gnu.org/g:afbf79466b717c90dc8267bb1c410a81b891a7e0

commit afbf79466b717c90dc8267bb1c410a81b891a7e0
Author: Mikael Morin <[email protected]>
Date:   Mon Oct 13 15:19:11 2025 +0200

    Correction régression unlimited_polymorphic_5.f90

Diff:
---
 gcc/fortran/trans-intrinsic.cc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gcc/fortran/trans-intrinsic.cc b/gcc/fortran/trans-intrinsic.cc
index 1cbfecc773cd..6b8f64f4dac4 100644
--- a/gcc/fortran/trans-intrinsic.cc
+++ b/gcc/fortran/trans-intrinsic.cc
@@ -13339,7 +13339,11 @@ conv_intrinsic_move_alloc (gfc_code *code)
     }
 
   /* Copy the array descriptor data.  */
-  gfc_add_modify_loc (input_location, &block, to_se.expr, from_se.expr);
+  if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (to_se.expr))
+      && GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (from_se.expr)))
+    gfc_copy_descriptor (&block, to_se.expr, from_se.expr);
+  else
+    gfc_add_modify_loc (input_location, &block, to_se.expr, from_se.expr);
 
   /* Set "from" to NULL.  */
   tmp = gfc_conv_descriptor_data_get (from_se.expr);

Reply via email to