https://gcc.gnu.org/g:9febf26e879407bf89ef3f7fd8b90f3638e78faa

commit 9febf26e879407bf89ef3f7fd8b90f3638e78faa
Author: Mikael Morin <[email protected]>
Date:   Thu Jul 16 11:31:32 2026 +0200

    Correction libgomp/alloc-1

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 01562cf73c8a..c154ea88c1f7 100644
--- a/gcc/fortran/trans-intrinsic.cc
+++ b/gcc/fortran/trans-intrinsic.cc
@@ -10165,10 +10165,13 @@ conv_isocbinding_subroutine (gfc_code *code)
       if (fptr->symtree->n.sym->attr.proc_pointer
          && fptr->symtree->n.sym->attr.dummy)
        fptrse.expr = build_fold_indirect_ref_loc (input_location, fptrse.expr);
+      tree dest_ptr = fptrse.expr;
+      if (TREE_CODE (dest_ptr) == NOP_EXPR)
+       dest_ptr = TREE_OPERAND (dest_ptr, 0);
       se.expr
-       = fold_build2_loc (input_location, MODIFY_EXPR, TREE_TYPE (fptrse.expr),
-                          fptrse.expr,
-                          fold_convert (TREE_TYPE (fptrse.expr), cptrse.expr));
+       = fold_build2_loc (input_location, MODIFY_EXPR, TREE_TYPE (dest_ptr),
+                          dest_ptr,
+                          fold_convert (TREE_TYPE (dest_ptr), cptrse.expr));
       gfc_add_expr_to_block (&se.pre, se.expr);
       gfc_add_block_to_block (&se.pre, &se.post);
       return gfc_finish_block (&se.pre);

Reply via email to