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

commit cc68e41ca61c7d7b14b174835638661506a112c5
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Wed Aug 20 21:41:29 2025 +0200

    Corrections régressions char_eoshift_1 char_eoshift_3 eoshift_large_1...

Diff:
---
 libgfortran/intrinsics/eoshift0.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libgfortran/intrinsics/eoshift0.c 
b/libgfortran/intrinsics/eoshift0.c
index 397d0e0c018b..a3f0c20bf9e2 100644
--- a/libgfortran/intrinsics/eoshift0.c
+++ b/libgfortran/intrinsics/eoshift0.c
@@ -150,8 +150,9 @@ eoshift0 (gfc_array_char * ret, const gfc_array_char * 
array,
 
         so a block move can be used for dim>1.  */
       len = GFC_DESCRIPTOR_SPACING(array, which)
-       * GFC_DESCRIPTOR_EXTENT(array, which);
-      shift *= GFC_DESCRIPTOR_SPACING(array, which);
+       * GFC_DESCRIPTOR_EXTENT(array, which)
+       / size;
+      shift *= GFC_DESCRIPTOR_SPACING(array, which) / size;
       roffset = size;
       soffset = size;
       for (dim = which + 1; dim < GFC_DESCRIPTOR_RANK (array); dim++)

Reply via email to