[gcc(refs/users/mikael/heads/refactor_descriptor_v08)] Factorisation gfc_conv_shift_descriptor
Mikael Morin
mikael@gcc.gnu.org
Sat Sep 6 17:22:53 GMT 2025
https://gcc.gnu.org/g:13b2631720f9a53e318a519bb1417f6568ffc888
commit 13b2631720f9a53e318a519bb1417f6568ffc888
Author: Mikael Morin <mikael@gcc.gnu.org>
Date: Fri Jul 18 14:45:07 2025 +0200
Factorisation gfc_conv_shift_descriptor
Factorisation gfc_conv_shift_descriptor
Diff:
---
gcc/fortran/trans-expr.cc | 7 +------
gcc/fortran/trans-stmt.cc | 6 +-----
2 files changed, 2 insertions(+), 11 deletions(-)
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index e463702a02a3..3c5600d324a7 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -1060,7 +1060,6 @@ 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
@@ -1127,11 +1126,7 @@ 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)
- {
- for (dim = 0; dim < e->rank; ++dim)
- gfc_conv_shift_descriptor_lbound (&parmse->pre, parmse->expr,
- dim, gfc_index_one_node);
- }
+ gfc_conv_shift_descriptor (&parmse->pre, parmse->expr, e->rank);
if (class_ts.u.derived->components->as->rank != e->rank)
{
diff --git a/gcc/fortran/trans-stmt.cc b/gcc/fortran/trans-stmt.cc
index 1867f67b16e3..57ca11e1bafb 100644
--- a/gcc/fortran/trans-stmt.cc
+++ b/gcc/fortran/trans-stmt.cc
@@ -2168,16 +2168,12 @@ trans_associate_var (gfc_symbol *sym, gfc_wrapped_block *block)
if ((!sym->assoc->variable && !cst_array_ctor)
|| !whole_array)
{
- int dim;
-
if (whole_array)
gfc_add_modify (&se.pre, desc, se.expr);
/* The generated descriptor has lower bound zero (as array
temporary), shift bounds so we get lower bounds of 1. */
- for (dim = 0; dim < e->rank; ++dim)
- gfc_conv_shift_descriptor_lbound (&se.pre, desc,
- dim, gfc_index_one_node);
+ gfc_conv_shift_descriptor (&se.pre, desc, e->rank);
}
if (e->expr_type == EXPR_FUNCTION
More information about the Gcc-cvs
mailing list