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

commit e57c18d0596a412412a0634c3b99d7273e52cb91
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Fri Jul 18 15:26:46 2025 +0200

    Revert "Factorisation gfc_conv_shift_descriptor"
    
    This reverts commit 6eab409fbaad9f98ac65ee39c77e7c09bf7bcc5b.

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

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index e600ce7c4b1d..107902a6b236 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -1132,6 +1132,7 @@ gfc_conv_intrinsic_to_class (gfc_se *parmse, gfc_expr *e,
   tree ctree;
   tree var;
   tree tmp;
+  int dim;
   bool unlimited_poly;
 
   unlimited_poly = class_ts.type == BT_CLASS
@@ -1199,7 +1200,11 @@ gfc_conv_intrinsic_to_class (gfc_se *parmse, gfc_expr *e,
          /* Array references with vector subscripts and non-variable 
expressions
             need be converted to a one-based descriptor.  */
          if (e->expr_type != EXPR_VARIABLE)
-           gfc_conv_shift_descriptor (&parmse->pre, parmse->expr, e->rank);
+           {
+             for (dim = 0; dim < e->rank; ++dim)
+               gfc_conv_shift_descriptor_lbound (&parmse->pre, parmse->expr,
+                                                 dim, gfc_index_one_node);
+           }
 
          if (class_ts.u.derived->components->as->rank != e->rank)
            {

Reply via email to