https://gcc.gnu.org/g:d2a61c5bf050c40f682ba6f2ccdeb2ca711aba3f
commit d2a61c5bf050c40f682ba6f2ccdeb2ca711aba3f Author: Mikael Morin <[email protected]> Date: Thu Sep 17 22:48:14 2026 +0200 Correction régression pr113956 Diff: --- gcc/fortran/trans-array.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index 784a497bf5a8..49518010de79 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -7887,7 +7887,11 @@ gfc_get_dataptr_offset (stmtblock_t *block, tree parm, tree desc, tree offset, } /* Set the target data pointer. */ - offset = gfc_build_addr_expr (gfc_array_dataptr_type (desc), tmp); + if (POINTER_TYPE_P (TREE_TYPE (tmp)) + && TYPE_STRING_FLAG (TREE_TYPE (TREE_TYPE (tmp)))) + offset = tmp; + else + offset = gfc_build_addr_expr (gfc_array_dataptr_type (desc), tmp); /* Check for optional dummy argument being present. Arguments of BIND(C) procedures are excepted here since they are handled differently. */
