https://gcc.gnu.org/g:5759e24d812c727cf64a2e8387dbb96a7700ebab

commit 5759e24d812c727cf64a2e8387dbb96a7700ebab
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Mon Sep 22 16:04:36 2025 +0200

    Correction régression transfer_class_3.f90

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

diff --git a/gcc/fortran/trans-intrinsic.cc b/gcc/fortran/trans-intrinsic.cc
index ddbd644309b2..8810b398b37d 100644
--- a/gcc/fortran/trans-intrinsic.cc
+++ b/gcc/fortran/trans-intrinsic.cc
@@ -8671,9 +8671,12 @@ gfc_conv_intrinsic_transfer (gfc_se * se, gfc_expr * 
expr)
              gcc_assert (arg->expr->expr_type == EXPR_VARIABLE);
              source = argse.expr;
              class_expr = gfc_find_and_cut_at_last_class_ref (arg->expr);
-             gfc_init_se (&argse, NULL);
-             gfc_conv_expr (&argse, class_expr);
-             class_ref = argse.expr;
+             gfc_se class_se;
+             gfc_init_se (&class_se, NULL);
+             gfc_conv_expr (&class_se, class_expr);
+             class_ref = class_se.expr;
+             gfc_add_block_to_block (&argse.pre, &class_se.pre);
+             gfc_add_block_to_block (&argse.post, &class_se.post);
            }
        }
       else

Reply via email to