https://gcc.gnu.org/g:7e427d335629ee19bb97f0aa63c776123692cff4
commit 7e427d335629ee19bb97f0aa63c776123692cff4 Author: Mikael Morin <[email protected]> Date: Sat Sep 13 20:37:07 2025 +0200 Correction cshift0.m4 Retour en arrière cshift0 Remodif cshift0.m4 Réapplication modifs cshift0 Correction cshift0.m4 Correction cshift0.m4 Correction cshift0.m4 Diff: --- libgfortran/m4/cshift0.m4 | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/libgfortran/m4/cshift0.m4 b/libgfortran/m4/cshift0.m4 index 674407c69771..2725025182ba 100644 --- a/libgfortran/m4/cshift0.m4 +++ b/libgfortran/m4/cshift0.m4 @@ -48,7 +48,6 @@ cshift0_'rtype_code` ('rtype` *ret, const 'rtype` *array, ptrdiff_t shift, index_type count[GFC_MAX_DIMENSIONS]; index_type extent[GFC_MAX_DIMENSIONS]; - index_type contiguous_extent; index_type dim; index_type len; index_type n; @@ -75,7 +74,6 @@ cshift0_'rtype_code` ('rtype` *ret, const 'rtype` *array, ptrdiff_t shift, { /* Test if both ret and array are contiguous. */ do_blocked = true; - contiguous_extent = 1; dim = GFC_DESCRIPTOR_RANK (array); for (n = 0; n < dim; n ++) { @@ -92,10 +90,8 @@ cshift0_'rtype_code` ('rtype` *ret, const 'rtype` *array, ptrdiff_t shift, do_blocked = false; break; } - index_type extent = GFC_DESCRIPTOR_EXTENT (array, n); r_ex *= GFC_DESCRIPTOR_EXTENT (ret, n); - a_ex *= extent; - contiguous_extent = extent; + a_ex *= GFC_DESCRIPTOR_EXTENT (array, n); } } else @@ -120,8 +116,9 @@ cshift0_'rtype_code` ('rtype` *ret, const 'rtype` *array, ptrdiff_t shift, rstride[0] = sizeof ('rtype_name`); roffset = sizeof ('rtype_name`); soffset = sizeof ('rtype_name`); - len = contiguous_extent * GFC_DESCRIPTOR_EXTENT(array, which); - shift *= contiguous_extent; + index_type count_low = GFC_DESCRIPTOR_STRIDE(array, which); + len = count_low * GFC_DESCRIPTOR_EXTENT(array, which); + shift *= count_low; for (dim = which + 1; dim < GFC_DESCRIPTOR_RANK (array); dim++) { count[n] = 0;
