https://gcc.gnu.org/g:37157d145c9c8864bbd80fc00541e07d1b9e77b6
commit 37157d145c9c8864bbd80fc00541e07d1b9e77b6 Author: Mikael Morin <mik...@gcc.gnu.org> Date: Tue May 20 15:39:49 2025 +0200 Correction régression maxval_char_4 Diff: --- libgfortran/generated/maxval1_s1.c | 5 +++-- libgfortran/generated/maxval1_s4.c | 5 +++-- libgfortran/generated/minval1_s1.c | 5 +++-- libgfortran/generated/minval1_s4.c | 5 +++-- libgfortran/m4/ifunction-s2.m4 | 1 - libgfortran/m4/maxval1s.m4 | 4 +++- libgfortran/m4/minval1s.m4 | 4 +++- 7 files changed, 18 insertions(+), 11 deletions(-) diff --git a/libgfortran/generated/maxval1_s1.c b/libgfortran/generated/maxval1_s1.c index e4c487e3cb77..9a9e8e0d3a83 100644 --- a/libgfortran/generated/maxval1_s1.c +++ b/libgfortran/generated/maxval1_s1.c @@ -359,8 +359,10 @@ mmaxval1_s1 (gfc_array_s1 * const restrict retarray, retval = src; break; } + src = (GFC_UINTEGER_1*) (((char*)src) + delta); + msrc += mdelta; } - for (; n < len; n++, src += delta, msrc += mdelta) + for (; n < len; n++) { if (*msrc && compare_fcn (src, retval, string_len) > 0) { @@ -419,7 +421,6 @@ smaxval1_s1 (gfc_array_s1 * const restrict retarray, gfc_charlen_type xlen, gfc_array_s1 * const restrict array, const index_type * const restrict pdim, GFC_LOGICAL_4 *mask, gfc_charlen_type string_len) - { index_type count[GFC_MAX_DIMENSIONS]; index_type extent[GFC_MAX_DIMENSIONS]; diff --git a/libgfortran/generated/maxval1_s4.c b/libgfortran/generated/maxval1_s4.c index 686e18276a12..0c2d4733a9ff 100644 --- a/libgfortran/generated/maxval1_s4.c +++ b/libgfortran/generated/maxval1_s4.c @@ -359,8 +359,10 @@ mmaxval1_s4 (gfc_array_s4 * const restrict retarray, retval = src; break; } + src = (GFC_UINTEGER_4*) (((char*)src) + delta); + msrc += mdelta; } - for (; n < len; n++, src += delta, msrc += mdelta) + for (; n < len; n++) { if (*msrc && compare_fcn (src, retval, string_len) > 0) { @@ -419,7 +421,6 @@ smaxval1_s4 (gfc_array_s4 * const restrict retarray, gfc_charlen_type xlen, gfc_array_s4 * const restrict array, const index_type * const restrict pdim, GFC_LOGICAL_4 *mask, gfc_charlen_type string_len) - { index_type count[GFC_MAX_DIMENSIONS]; index_type extent[GFC_MAX_DIMENSIONS]; diff --git a/libgfortran/generated/minval1_s1.c b/libgfortran/generated/minval1_s1.c index 00f4473c3b45..cd60a26b8ef9 100644 --- a/libgfortran/generated/minval1_s1.c +++ b/libgfortran/generated/minval1_s1.c @@ -359,8 +359,10 @@ mminval1_s1 (gfc_array_s1 * const restrict retarray, retval = src; break; } + src = (GFC_UINTEGER_1*) (((char*)src) + delta); + msrc += mdelta; } - for (; n < len; n++, src += delta, msrc += mdelta) + for (; n < len; n++) { if (*msrc && compare_fcn (src, retval, string_len) < 0) { @@ -419,7 +421,6 @@ sminval1_s1 (gfc_array_s1 * const restrict retarray, gfc_charlen_type xlen, gfc_array_s1 * const restrict array, const index_type * const restrict pdim, GFC_LOGICAL_4 *mask, gfc_charlen_type string_len) - { index_type count[GFC_MAX_DIMENSIONS]; index_type extent[GFC_MAX_DIMENSIONS]; diff --git a/libgfortran/generated/minval1_s4.c b/libgfortran/generated/minval1_s4.c index 1ecbc7b75f25..9a21602c30b1 100644 --- a/libgfortran/generated/minval1_s4.c +++ b/libgfortran/generated/minval1_s4.c @@ -359,8 +359,10 @@ mminval1_s4 (gfc_array_s4 * const restrict retarray, retval = src; break; } + src = (GFC_UINTEGER_4*) (((char*)src) + delta); + msrc += mdelta; } - for (; n < len; n++, src += delta, msrc += mdelta) + for (; n < len; n++) { if (*msrc && compare_fcn (src, retval, string_len) < 0) { @@ -419,7 +421,6 @@ sminval1_s4 (gfc_array_s4 * const restrict retarray, gfc_charlen_type xlen, gfc_array_s4 * const restrict array, const index_type * const restrict pdim, GFC_LOGICAL_4 *mask, gfc_charlen_type string_len) - { index_type count[GFC_MAX_DIMENSIONS]; index_type extent[GFC_MAX_DIMENSIONS]; diff --git a/libgfortran/m4/ifunction-s2.m4 b/libgfortran/m4/ifunction-s2.m4 index beb3fd95ad11..4da7080f1d7b 100644 --- a/libgfortran/m4/ifunction-s2.m4 +++ b/libgfortran/m4/ifunction-s2.m4 @@ -391,7 +391,6 @@ s'name`'rtype_qual`_'atype_code` ('rtype` * const restrict retarray, gfc_charlen_type xlen, 'atype` * const restrict array, const index_type * const restrict pdim, GFC_LOGICAL_4 *mask, gfc_charlen_type string_len) - { index_type count[GFC_MAX_DIMENSIONS]; index_type extent[GFC_MAX_DIMENSIONS]; diff --git a/libgfortran/m4/maxval1s.m4 b/libgfortran/m4/maxval1s.m4 index 602347ab0b5c..b9091461f7ec 100644 --- a/libgfortran/m4/maxval1s.m4 +++ b/libgfortran/m4/maxval1s.m4 @@ -47,8 +47,10 @@ MASKED_ARRAY_FUNCTION(0, retval = src; break; } + src = ('atype_name`*) (((char*)src) + delta); + msrc += mdelta; } - for (; n < len; n++, src += delta, msrc += mdelta) + for (; n < len; n++) { if (*msrc && compare_fcn (src, retval, string_len) > 0) { diff --git a/libgfortran/m4/minval1s.m4 b/libgfortran/m4/minval1s.m4 index 30ac98674a55..8a6f185af4f3 100644 --- a/libgfortran/m4/minval1s.m4 +++ b/libgfortran/m4/minval1s.m4 @@ -47,8 +47,10 @@ MASKED_ARRAY_FUNCTION(255, retval = src; break; } + src = ('atype_name`*) (((char*)src) + delta); + msrc += mdelta; } - for (; n < len; n++, src += delta, msrc += mdelta) + for (; n < len; n++) { if (*msrc && compare_fcn (src, retval, string_len) < 0) {