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

commit df1d679b9faa4228a7e1d17675a6074533b6a115
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Wed Apr 30 18:52:14 2025 +0200

    Correction régression pointer_function_result_1

Diff:
---
 gcc/fortran/trans-array.cc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index 79ca3f4f74c8..861b689704b0 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -2827,7 +2827,8 @@ gfc_add_loop_ss_code (gfc_loopinfo * loop, gfc_ss * ss, 
bool subscript,
                  {
                    tree type = gfc_typenode_for_spec (&ss_info->expr->ts);
                    if (TYPE_SIZE_UNIT (type) == NULL_TREE
-                       || !INTEGER_CST_P (TYPE_SIZE_UNIT (type)))
+                       || !INTEGER_CST_P (TYPE_SIZE_UNIT (type))
+                       || gfc_expr_attr (ss_info->expr).pointer)
                      {
                        for (n = 0; n < ss_info->expr->rank; n++)
                          {
@@ -3607,7 +3608,8 @@ void
 gfc_conv_tmp_array_ref (gfc_se * se)
 {
   se->string_length = se->ss->info->string_length;
-  gfc_conv_scalarized_array_ref (se, NULL, true);
+  bool tmp_array = !gfc_expr_attr (se->ss->info->expr).pointer;
+  gfc_conv_scalarized_array_ref (se, NULL, tmp_array);
   gfc_advance_se_ss_chain (se);
 }

Reply via email to