https://gcc.gnu.org/g:af3d85c40738533d647e2eee5eae4a73dbe8e063
commit af3d85c40738533d647e2eee5eae4a73dbe8e063 Author: Mikael Morin <mik...@gcc.gnu.org> Date: Thu May 22 11:30:53 2025 +0200 Correction régression deferred_character_37 Diff: --- libgfortran/intrinsics/spread_generic.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/libgfortran/intrinsics/spread_generic.c b/libgfortran/intrinsics/spread_generic.c index f26be67b62b3..c53752daebe2 100644 --- a/libgfortran/intrinsics/spread_generic.c +++ b/libgfortran/intrinsics/spread_generic.c @@ -71,22 +71,23 @@ spread_internal (gfc_array_char *ret, const gfc_array_char *source, /* The front end has signalled that we need to populate the return array descriptor. */ - size_t ub; - index_type spacing; + size_t ub, spacing; + index_type next_spacing; ret->dtype.rank = rrank; dim = 0; - rs = size; - spacing = size; + rs = 1; + next_spacing = size; for (n = 0; n < rrank; n++) { + spacing = next_spacing; if (n == *along - 1) { ub = ncopies - 1; rdelta = rs * size; rs *= ncopies; - spacing *= ncopies; + next_spacing *= ncopies; } else { @@ -97,7 +98,7 @@ spread_internal (gfc_array_char *ret, const gfc_array_char *source, ub = extent[dim]-1; rs *= extent[dim]; - spacing *= extent[dim]; + next_spacing *= extent[dim]; dim++; }