[gcc(refs/users/mikael/heads/refactor_descriptor_v05)] Correction régression array_function_6.f90
Mikael Morin
mikael@gcc.gnu.org
Fri Jun 13 14:46:32 GMT 2025
https://gcc.gnu.org/g:e57455a51d6365926c4eea3758c0c303fe1daec6
commit e57455a51d6365926c4eea3758c0c303fe1daec6
Author: Mikael Morin <mikael@gcc.gnu.org>
Date: Tue Feb 18 15:07:23 2025 +0100
Correction régression array_function_6.f90
Diff:
---
gcc/fortran/resolve.cc | 4 ++++
gcc/fortran/trans-array.cc | 11 ++++++++---
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index d09aef0a899c..301bda411634 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -3663,6 +3663,10 @@ resolve_function (gfc_expr *expr)
gfc_warning (OPT_Wdeprecated_declarations,
"Using function %qs at %L is deprecated",
sym->name, &expr->where);
+
+ if (!expr->value.function.isym)
+ gfc_expression_rank (expr);
+
return t;
}
diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index 797895a2d33f..9c064f96c11f 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -13743,7 +13743,7 @@ gfc_alloc_allocatable_for_assignment (gfc_loopinfo *loop,
&& !expr2->value.function.isym)
expr2->ts.u.cl->backend_decl = rss->info->string_length;
- gfc_init_block (&fblock);
+ gfc_start_block (&fblock);
/* Since the lhs is allocatable, this must be a descriptor type.
Get the data and array size. */
@@ -14248,9 +14248,14 @@ gfc_alloc_allocatable_for_assignment (gfc_loopinfo *loop,
tmp = build1_v (LABEL_EXPR, jump_label2);
gfc_add_expr_to_block (&fblock, tmp);
- update_reallocated_descriptor (&fblock, loop);
+ tree realloc_code = gfc_finish_block (&fblock);
- return gfc_finish_block (&fblock);
+ stmtblock_t result_block;
+ gfc_init_block (&result_block);
+ gfc_add_expr_to_block (&result_block, realloc_code);
+ update_reallocated_descriptor (&result_block, loop);
+
+ return gfc_finish_block (&result_block);
}
More information about the Gcc-cvs
mailing list