From: Jakub Jelinek Date: Thu, 8 May 2025 07:36:30 +0000 (+0200) Subject: libfortran: Fix up maxval/maxloc for UNSIGNED [PR120158] X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8c73c99b6a8c3a562fef360bc269bd60bab36076;p=thirdparty%2Fgcc.git libfortran: Fix up maxval/maxloc for UNSIGNED [PR120158] When libgfortran is compiled, there are some -Woverflow warnings like ../../../libgfortran/generated/maxloc0_4_m1.c:99:14: warning: unsigned conversion from ‘int’ to ‘GFC_UINTEGER_1’ {aka ‘unsigned char’} changes value from ‘-255’ to ‘1’ [-Woverflow] 99 | maxval = -GFC_UINTEGER_1_HUGE; | ^ and those actually point a bug in the maxloc*/maxval* implementation for UNSIGNED. The intent of #if defined ('atype_inf`) result = -atype_inf; #else result = atype_min; #endif (or similar for maxval) is to initialize the variable with minimum value of the type, if the type has infinities, then negative infinity, otherwise the minimum (normalized) value. atype_min expands for signed integers to say (-GFC_INTEGER_4_HUGE-1) or for floating point to say -GFC_REAL_8_HUGE. For UNSIGNED it expands to e.g. -GFC_UINTEGER_4_HUGE, but that is -0xffffffffU which is 1U, while the minimum value of the type is 0. Haven't tried to construct testcases for that, but I believe e.g. maskval could return incorrectly 1 on an array (or masked array) full of 0s, or maxloc could identify incorrectly the maximum location. The following patch makes sure atype_min expands to 0 for atype_name GFC_UINTEGER*. 2025-05-07 Jakub Jelinek PR libfortran/120158 * m4/iparm.m4 (atype_min): For atype_name starting with GFC_UINTEGER define to 0. * generated/maxloc0_16_m1.c: Regenerate. * generated/maxloc0_16_m2.c: Regenerate. * generated/maxloc0_16_m4.c: Regenerate. * generated/maxloc0_16_m8.c: Regenerate. * generated/maxloc0_16_m16.c: Regenerate. * generated/maxloc0_4_m1.c: Regenerate. * generated/maxloc0_4_m2.c: Regenerate. * generated/maxloc0_4_m4.c: Regenerate. * generated/maxloc0_4_m8.c: Regenerate. * generated/maxloc0_4_m16.c: Regenerate. * generated/maxloc0_8_m1.c: Regenerate. * generated/maxloc0_8_m2.c: Regenerate. * generated/maxloc0_8_m4.c: Regenerate. * generated/maxloc0_8_m8.c: Regenerate. * generated/maxloc0_8_m16.c: Regenerate. * generated/maxloc1_16_m1.c: Regenerate. * generated/maxloc1_16_m2.c: Regenerate. * generated/maxloc1_16_m4.c: Regenerate. * generated/maxloc1_16_m8.c: Regenerate. * generated/maxloc1_16_m16.c: Regenerate. * generated/maxloc1_4_m1.c: Regenerate. * generated/maxloc1_4_m2.c: Regenerate. * generated/maxloc1_4_m4.c: Regenerate. * generated/maxloc1_4_m8.c: Regenerate. * generated/maxloc1_4_m16.c: Regenerate. * generated/maxloc1_8_m1.c: Regenerate. * generated/maxloc1_8_m2.c: Regenerate. * generated/maxloc1_8_m4.c: Regenerate. * generated/maxloc1_8_m8.c: Regenerate. * generated/maxloc1_8_m16.c: Regenerate. * generated/maxval_m1.c: Regenerate. * generated/maxval_m2.c: Regenerate. * generated/maxval_m4.c: Regenerate. * generated/maxval_m8.c: Regenerate. * generated/maxval_m16.c: Regenerate. --- diff --git a/libgfortran/generated/maxloc0_16_m1.c b/libgfortran/generated/maxloc0_16_m1.c index d13ebbf134c..2a47b9ebc12 100644 --- a/libgfortran/generated/maxloc0_16_m1.c +++ b/libgfortran/generated/maxloc0_16_m1.c @@ -96,7 +96,7 @@ maxloc0_16_m1 (gfc_array_i16 * const restrict retarray, #if defined(GFC_UINTEGER_1_INFINITY) maxval = -GFC_UINTEGER_1_INFINITY; #else - maxval = -GFC_UINTEGER_1_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_16_m1 (gfc_array_i16 * const restrict retarray, #if defined(GFC_UINTEGER_1_INFINITY) maxval = -GFC_UINTEGER_1_INFINITY; #else - maxval = -GFC_UINTEGER_1_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_16_m16.c b/libgfortran/generated/maxloc0_16_m16.c index 00cb09b640f..1003fdb7251 100644 --- a/libgfortran/generated/maxloc0_16_m16.c +++ b/libgfortran/generated/maxloc0_16_m16.c @@ -96,7 +96,7 @@ maxloc0_16_m16 (gfc_array_i16 * const restrict retarray, #if defined(GFC_UINTEGER_16_INFINITY) maxval = -GFC_UINTEGER_16_INFINITY; #else - maxval = -GFC_UINTEGER_16_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_16_m16 (gfc_array_i16 * const restrict retarray, #if defined(GFC_UINTEGER_16_INFINITY) maxval = -GFC_UINTEGER_16_INFINITY; #else - maxval = -GFC_UINTEGER_16_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_16_m2.c b/libgfortran/generated/maxloc0_16_m2.c index 32449528199..49b92f7eb98 100644 --- a/libgfortran/generated/maxloc0_16_m2.c +++ b/libgfortran/generated/maxloc0_16_m2.c @@ -96,7 +96,7 @@ maxloc0_16_m2 (gfc_array_i16 * const restrict retarray, #if defined(GFC_UINTEGER_2_INFINITY) maxval = -GFC_UINTEGER_2_INFINITY; #else - maxval = -GFC_UINTEGER_2_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_16_m2 (gfc_array_i16 * const restrict retarray, #if defined(GFC_UINTEGER_2_INFINITY) maxval = -GFC_UINTEGER_2_INFINITY; #else - maxval = -GFC_UINTEGER_2_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_16_m4.c b/libgfortran/generated/maxloc0_16_m4.c index 3cda598de77..0144125709b 100644 --- a/libgfortran/generated/maxloc0_16_m4.c +++ b/libgfortran/generated/maxloc0_16_m4.c @@ -96,7 +96,7 @@ maxloc0_16_m4 (gfc_array_i16 * const restrict retarray, #if defined(GFC_UINTEGER_4_INFINITY) maxval = -GFC_UINTEGER_4_INFINITY; #else - maxval = -GFC_UINTEGER_4_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_16_m4 (gfc_array_i16 * const restrict retarray, #if defined(GFC_UINTEGER_4_INFINITY) maxval = -GFC_UINTEGER_4_INFINITY; #else - maxval = -GFC_UINTEGER_4_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_16_m8.c b/libgfortran/generated/maxloc0_16_m8.c index f98485d06df..96d6295e5c5 100644 --- a/libgfortran/generated/maxloc0_16_m8.c +++ b/libgfortran/generated/maxloc0_16_m8.c @@ -96,7 +96,7 @@ maxloc0_16_m8 (gfc_array_i16 * const restrict retarray, #if defined(GFC_UINTEGER_8_INFINITY) maxval = -GFC_UINTEGER_8_INFINITY; #else - maxval = -GFC_UINTEGER_8_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_16_m8 (gfc_array_i16 * const restrict retarray, #if defined(GFC_UINTEGER_8_INFINITY) maxval = -GFC_UINTEGER_8_INFINITY; #else - maxval = -GFC_UINTEGER_8_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_4_m1.c b/libgfortran/generated/maxloc0_4_m1.c index 7ae89c1a774..78259523471 100644 --- a/libgfortran/generated/maxloc0_4_m1.c +++ b/libgfortran/generated/maxloc0_4_m1.c @@ -96,7 +96,7 @@ maxloc0_4_m1 (gfc_array_i4 * const restrict retarray, #if defined(GFC_UINTEGER_1_INFINITY) maxval = -GFC_UINTEGER_1_INFINITY; #else - maxval = -GFC_UINTEGER_1_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_4_m1 (gfc_array_i4 * const restrict retarray, #if defined(GFC_UINTEGER_1_INFINITY) maxval = -GFC_UINTEGER_1_INFINITY; #else - maxval = -GFC_UINTEGER_1_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_4_m16.c b/libgfortran/generated/maxloc0_4_m16.c index 8d62e046928..4e90c491d63 100644 --- a/libgfortran/generated/maxloc0_4_m16.c +++ b/libgfortran/generated/maxloc0_4_m16.c @@ -96,7 +96,7 @@ maxloc0_4_m16 (gfc_array_i4 * const restrict retarray, #if defined(GFC_UINTEGER_16_INFINITY) maxval = -GFC_UINTEGER_16_INFINITY; #else - maxval = -GFC_UINTEGER_16_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_4_m16 (gfc_array_i4 * const restrict retarray, #if defined(GFC_UINTEGER_16_INFINITY) maxval = -GFC_UINTEGER_16_INFINITY; #else - maxval = -GFC_UINTEGER_16_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_4_m2.c b/libgfortran/generated/maxloc0_4_m2.c index c8cf68bac09..b6b530bed63 100644 --- a/libgfortran/generated/maxloc0_4_m2.c +++ b/libgfortran/generated/maxloc0_4_m2.c @@ -96,7 +96,7 @@ maxloc0_4_m2 (gfc_array_i4 * const restrict retarray, #if defined(GFC_UINTEGER_2_INFINITY) maxval = -GFC_UINTEGER_2_INFINITY; #else - maxval = -GFC_UINTEGER_2_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_4_m2 (gfc_array_i4 * const restrict retarray, #if defined(GFC_UINTEGER_2_INFINITY) maxval = -GFC_UINTEGER_2_INFINITY; #else - maxval = -GFC_UINTEGER_2_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_4_m4.c b/libgfortran/generated/maxloc0_4_m4.c index 3f5f5500d63..b3ee5af083b 100644 --- a/libgfortran/generated/maxloc0_4_m4.c +++ b/libgfortran/generated/maxloc0_4_m4.c @@ -96,7 +96,7 @@ maxloc0_4_m4 (gfc_array_i4 * const restrict retarray, #if defined(GFC_UINTEGER_4_INFINITY) maxval = -GFC_UINTEGER_4_INFINITY; #else - maxval = -GFC_UINTEGER_4_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_4_m4 (gfc_array_i4 * const restrict retarray, #if defined(GFC_UINTEGER_4_INFINITY) maxval = -GFC_UINTEGER_4_INFINITY; #else - maxval = -GFC_UINTEGER_4_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_4_m8.c b/libgfortran/generated/maxloc0_4_m8.c index d4c30f8a639..4f7ec059f96 100644 --- a/libgfortran/generated/maxloc0_4_m8.c +++ b/libgfortran/generated/maxloc0_4_m8.c @@ -96,7 +96,7 @@ maxloc0_4_m8 (gfc_array_i4 * const restrict retarray, #if defined(GFC_UINTEGER_8_INFINITY) maxval = -GFC_UINTEGER_8_INFINITY; #else - maxval = -GFC_UINTEGER_8_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_4_m8 (gfc_array_i4 * const restrict retarray, #if defined(GFC_UINTEGER_8_INFINITY) maxval = -GFC_UINTEGER_8_INFINITY; #else - maxval = -GFC_UINTEGER_8_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_8_m1.c b/libgfortran/generated/maxloc0_8_m1.c index af972135410..2b4b0e7fcbe 100644 --- a/libgfortran/generated/maxloc0_8_m1.c +++ b/libgfortran/generated/maxloc0_8_m1.c @@ -96,7 +96,7 @@ maxloc0_8_m1 (gfc_array_i8 * const restrict retarray, #if defined(GFC_UINTEGER_1_INFINITY) maxval = -GFC_UINTEGER_1_INFINITY; #else - maxval = -GFC_UINTEGER_1_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_8_m1 (gfc_array_i8 * const restrict retarray, #if defined(GFC_UINTEGER_1_INFINITY) maxval = -GFC_UINTEGER_1_INFINITY; #else - maxval = -GFC_UINTEGER_1_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_8_m16.c b/libgfortran/generated/maxloc0_8_m16.c index e2d47b6078c..da03132c2e8 100644 --- a/libgfortran/generated/maxloc0_8_m16.c +++ b/libgfortran/generated/maxloc0_8_m16.c @@ -96,7 +96,7 @@ maxloc0_8_m16 (gfc_array_i8 * const restrict retarray, #if defined(GFC_UINTEGER_16_INFINITY) maxval = -GFC_UINTEGER_16_INFINITY; #else - maxval = -GFC_UINTEGER_16_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_8_m16 (gfc_array_i8 * const restrict retarray, #if defined(GFC_UINTEGER_16_INFINITY) maxval = -GFC_UINTEGER_16_INFINITY; #else - maxval = -GFC_UINTEGER_16_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_8_m2.c b/libgfortran/generated/maxloc0_8_m2.c index 390fc8f9fd1..0c7b74c06f8 100644 --- a/libgfortran/generated/maxloc0_8_m2.c +++ b/libgfortran/generated/maxloc0_8_m2.c @@ -96,7 +96,7 @@ maxloc0_8_m2 (gfc_array_i8 * const restrict retarray, #if defined(GFC_UINTEGER_2_INFINITY) maxval = -GFC_UINTEGER_2_INFINITY; #else - maxval = -GFC_UINTEGER_2_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_8_m2 (gfc_array_i8 * const restrict retarray, #if defined(GFC_UINTEGER_2_INFINITY) maxval = -GFC_UINTEGER_2_INFINITY; #else - maxval = -GFC_UINTEGER_2_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_8_m4.c b/libgfortran/generated/maxloc0_8_m4.c index 05dda2c334b..307a04b697c 100644 --- a/libgfortran/generated/maxloc0_8_m4.c +++ b/libgfortran/generated/maxloc0_8_m4.c @@ -96,7 +96,7 @@ maxloc0_8_m4 (gfc_array_i8 * const restrict retarray, #if defined(GFC_UINTEGER_4_INFINITY) maxval = -GFC_UINTEGER_4_INFINITY; #else - maxval = -GFC_UINTEGER_4_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_8_m4 (gfc_array_i8 * const restrict retarray, #if defined(GFC_UINTEGER_4_INFINITY) maxval = -GFC_UINTEGER_4_INFINITY; #else - maxval = -GFC_UINTEGER_4_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc0_8_m8.c b/libgfortran/generated/maxloc0_8_m8.c index 48875e7f9b5..5160418c8d9 100644 --- a/libgfortran/generated/maxloc0_8_m8.c +++ b/libgfortran/generated/maxloc0_8_m8.c @@ -96,7 +96,7 @@ maxloc0_8_m8 (gfc_array_i8 * const restrict retarray, #if defined(GFC_UINTEGER_8_INFINITY) maxval = -GFC_UINTEGER_8_INFINITY; #else - maxval = -GFC_UINTEGER_8_HUGE; + maxval = 0; #endif while (base) { @@ -271,7 +271,7 @@ mmaxloc0_8_m8 (gfc_array_i8 * const restrict retarray, #if defined(GFC_UINTEGER_8_INFINITY) maxval = -GFC_UINTEGER_8_INFINITY; #else - maxval = -GFC_UINTEGER_8_HUGE; + maxval = 0; #endif while (base) { diff --git a/libgfortran/generated/maxloc1_16_m1.c b/libgfortran/generated/maxloc1_16_m1.c index 14961da84d5..4d78e75f334 100644 --- a/libgfortran/generated/maxloc1_16_m1.c +++ b/libgfortran/generated/maxloc1_16_m1.c @@ -147,7 +147,7 @@ maxloc1_16_m1 (gfc_array_i16 * const restrict retarray, #if defined (GFC_UINTEGER_1_INFINITY) maxval = -GFC_UINTEGER_1_INFINITY; #else - maxval = -GFC_UINTEGER_1_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_16_m1 (gfc_array_i16 * const restrict retarray, #if defined (GFC_UINTEGER_1_INFINITY) maxval = -GFC_UINTEGER_1_INFINITY; #else - maxval = -GFC_UINTEGER_1_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_1_QUIET_NAN) GFC_INTEGER_16 result2 = 0; diff --git a/libgfortran/generated/maxloc1_16_m16.c b/libgfortran/generated/maxloc1_16_m16.c index d97dbc0c38e..e6f1ae3607b 100644 --- a/libgfortran/generated/maxloc1_16_m16.c +++ b/libgfortran/generated/maxloc1_16_m16.c @@ -147,7 +147,7 @@ maxloc1_16_m16 (gfc_array_i16 * const restrict retarray, #if defined (GFC_UINTEGER_16_INFINITY) maxval = -GFC_UINTEGER_16_INFINITY; #else - maxval = -GFC_UINTEGER_16_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_16_m16 (gfc_array_i16 * const restrict retarray, #if defined (GFC_UINTEGER_16_INFINITY) maxval = -GFC_UINTEGER_16_INFINITY; #else - maxval = -GFC_UINTEGER_16_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_16_QUIET_NAN) GFC_INTEGER_16 result2 = 0; diff --git a/libgfortran/generated/maxloc1_16_m2.c b/libgfortran/generated/maxloc1_16_m2.c index 0187b685ad4..8bb48ddaeba 100644 --- a/libgfortran/generated/maxloc1_16_m2.c +++ b/libgfortran/generated/maxloc1_16_m2.c @@ -147,7 +147,7 @@ maxloc1_16_m2 (gfc_array_i16 * const restrict retarray, #if defined (GFC_UINTEGER_2_INFINITY) maxval = -GFC_UINTEGER_2_INFINITY; #else - maxval = -GFC_UINTEGER_2_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_16_m2 (gfc_array_i16 * const restrict retarray, #if defined (GFC_UINTEGER_2_INFINITY) maxval = -GFC_UINTEGER_2_INFINITY; #else - maxval = -GFC_UINTEGER_2_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_2_QUIET_NAN) GFC_INTEGER_16 result2 = 0; diff --git a/libgfortran/generated/maxloc1_16_m4.c b/libgfortran/generated/maxloc1_16_m4.c index 480a524878b..659d6cf6abb 100644 --- a/libgfortran/generated/maxloc1_16_m4.c +++ b/libgfortran/generated/maxloc1_16_m4.c @@ -147,7 +147,7 @@ maxloc1_16_m4 (gfc_array_i16 * const restrict retarray, #if defined (GFC_UINTEGER_4_INFINITY) maxval = -GFC_UINTEGER_4_INFINITY; #else - maxval = -GFC_UINTEGER_4_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_16_m4 (gfc_array_i16 * const restrict retarray, #if defined (GFC_UINTEGER_4_INFINITY) maxval = -GFC_UINTEGER_4_INFINITY; #else - maxval = -GFC_UINTEGER_4_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_4_QUIET_NAN) GFC_INTEGER_16 result2 = 0; diff --git a/libgfortran/generated/maxloc1_16_m8.c b/libgfortran/generated/maxloc1_16_m8.c index ecbaba3685b..a6d2c08a560 100644 --- a/libgfortran/generated/maxloc1_16_m8.c +++ b/libgfortran/generated/maxloc1_16_m8.c @@ -147,7 +147,7 @@ maxloc1_16_m8 (gfc_array_i16 * const restrict retarray, #if defined (GFC_UINTEGER_8_INFINITY) maxval = -GFC_UINTEGER_8_INFINITY; #else - maxval = -GFC_UINTEGER_8_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_16_m8 (gfc_array_i16 * const restrict retarray, #if defined (GFC_UINTEGER_8_INFINITY) maxval = -GFC_UINTEGER_8_INFINITY; #else - maxval = -GFC_UINTEGER_8_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_8_QUIET_NAN) GFC_INTEGER_16 result2 = 0; diff --git a/libgfortran/generated/maxloc1_4_m1.c b/libgfortran/generated/maxloc1_4_m1.c index e69d49d77e1..709a1ddd38a 100644 --- a/libgfortran/generated/maxloc1_4_m1.c +++ b/libgfortran/generated/maxloc1_4_m1.c @@ -147,7 +147,7 @@ maxloc1_4_m1 (gfc_array_i4 * const restrict retarray, #if defined (GFC_UINTEGER_1_INFINITY) maxval = -GFC_UINTEGER_1_INFINITY; #else - maxval = -GFC_UINTEGER_1_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_4_m1 (gfc_array_i4 * const restrict retarray, #if defined (GFC_UINTEGER_1_INFINITY) maxval = -GFC_UINTEGER_1_INFINITY; #else - maxval = -GFC_UINTEGER_1_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_1_QUIET_NAN) GFC_INTEGER_4 result2 = 0; diff --git a/libgfortran/generated/maxloc1_4_m16.c b/libgfortran/generated/maxloc1_4_m16.c index 0ed90bb3319..cc10527a49a 100644 --- a/libgfortran/generated/maxloc1_4_m16.c +++ b/libgfortran/generated/maxloc1_4_m16.c @@ -147,7 +147,7 @@ maxloc1_4_m16 (gfc_array_i4 * const restrict retarray, #if defined (GFC_UINTEGER_16_INFINITY) maxval = -GFC_UINTEGER_16_INFINITY; #else - maxval = -GFC_UINTEGER_16_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_4_m16 (gfc_array_i4 * const restrict retarray, #if defined (GFC_UINTEGER_16_INFINITY) maxval = -GFC_UINTEGER_16_INFINITY; #else - maxval = -GFC_UINTEGER_16_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_16_QUIET_NAN) GFC_INTEGER_4 result2 = 0; diff --git a/libgfortran/generated/maxloc1_4_m2.c b/libgfortran/generated/maxloc1_4_m2.c index 76aa8d1ab3b..06f989cee5d 100644 --- a/libgfortran/generated/maxloc1_4_m2.c +++ b/libgfortran/generated/maxloc1_4_m2.c @@ -147,7 +147,7 @@ maxloc1_4_m2 (gfc_array_i4 * const restrict retarray, #if defined (GFC_UINTEGER_2_INFINITY) maxval = -GFC_UINTEGER_2_INFINITY; #else - maxval = -GFC_UINTEGER_2_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_4_m2 (gfc_array_i4 * const restrict retarray, #if defined (GFC_UINTEGER_2_INFINITY) maxval = -GFC_UINTEGER_2_INFINITY; #else - maxval = -GFC_UINTEGER_2_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_2_QUIET_NAN) GFC_INTEGER_4 result2 = 0; diff --git a/libgfortran/generated/maxloc1_4_m4.c b/libgfortran/generated/maxloc1_4_m4.c index 3313c14aeff..6a52a0a2f43 100644 --- a/libgfortran/generated/maxloc1_4_m4.c +++ b/libgfortran/generated/maxloc1_4_m4.c @@ -147,7 +147,7 @@ maxloc1_4_m4 (gfc_array_i4 * const restrict retarray, #if defined (GFC_UINTEGER_4_INFINITY) maxval = -GFC_UINTEGER_4_INFINITY; #else - maxval = -GFC_UINTEGER_4_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_4_m4 (gfc_array_i4 * const restrict retarray, #if defined (GFC_UINTEGER_4_INFINITY) maxval = -GFC_UINTEGER_4_INFINITY; #else - maxval = -GFC_UINTEGER_4_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_4_QUIET_NAN) GFC_INTEGER_4 result2 = 0; diff --git a/libgfortran/generated/maxloc1_4_m8.c b/libgfortran/generated/maxloc1_4_m8.c index 1f39517078c..e2f92a9a212 100644 --- a/libgfortran/generated/maxloc1_4_m8.c +++ b/libgfortran/generated/maxloc1_4_m8.c @@ -147,7 +147,7 @@ maxloc1_4_m8 (gfc_array_i4 * const restrict retarray, #if defined (GFC_UINTEGER_8_INFINITY) maxval = -GFC_UINTEGER_8_INFINITY; #else - maxval = -GFC_UINTEGER_8_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_4_m8 (gfc_array_i4 * const restrict retarray, #if defined (GFC_UINTEGER_8_INFINITY) maxval = -GFC_UINTEGER_8_INFINITY; #else - maxval = -GFC_UINTEGER_8_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_8_QUIET_NAN) GFC_INTEGER_4 result2 = 0; diff --git a/libgfortran/generated/maxloc1_8_m1.c b/libgfortran/generated/maxloc1_8_m1.c index 7c3ac0f96e9..2f2ff5ad0a0 100644 --- a/libgfortran/generated/maxloc1_8_m1.c +++ b/libgfortran/generated/maxloc1_8_m1.c @@ -147,7 +147,7 @@ maxloc1_8_m1 (gfc_array_i8 * const restrict retarray, #if defined (GFC_UINTEGER_1_INFINITY) maxval = -GFC_UINTEGER_1_INFINITY; #else - maxval = -GFC_UINTEGER_1_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_8_m1 (gfc_array_i8 * const restrict retarray, #if defined (GFC_UINTEGER_1_INFINITY) maxval = -GFC_UINTEGER_1_INFINITY; #else - maxval = -GFC_UINTEGER_1_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_1_QUIET_NAN) GFC_INTEGER_8 result2 = 0; diff --git a/libgfortran/generated/maxloc1_8_m16.c b/libgfortran/generated/maxloc1_8_m16.c index c643963af01..c0c47bb16d6 100644 --- a/libgfortran/generated/maxloc1_8_m16.c +++ b/libgfortran/generated/maxloc1_8_m16.c @@ -147,7 +147,7 @@ maxloc1_8_m16 (gfc_array_i8 * const restrict retarray, #if defined (GFC_UINTEGER_16_INFINITY) maxval = -GFC_UINTEGER_16_INFINITY; #else - maxval = -GFC_UINTEGER_16_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_8_m16 (gfc_array_i8 * const restrict retarray, #if defined (GFC_UINTEGER_16_INFINITY) maxval = -GFC_UINTEGER_16_INFINITY; #else - maxval = -GFC_UINTEGER_16_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_16_QUIET_NAN) GFC_INTEGER_8 result2 = 0; diff --git a/libgfortran/generated/maxloc1_8_m2.c b/libgfortran/generated/maxloc1_8_m2.c index 2fa5c3b3535..cf915b07b48 100644 --- a/libgfortran/generated/maxloc1_8_m2.c +++ b/libgfortran/generated/maxloc1_8_m2.c @@ -147,7 +147,7 @@ maxloc1_8_m2 (gfc_array_i8 * const restrict retarray, #if defined (GFC_UINTEGER_2_INFINITY) maxval = -GFC_UINTEGER_2_INFINITY; #else - maxval = -GFC_UINTEGER_2_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_8_m2 (gfc_array_i8 * const restrict retarray, #if defined (GFC_UINTEGER_2_INFINITY) maxval = -GFC_UINTEGER_2_INFINITY; #else - maxval = -GFC_UINTEGER_2_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_2_QUIET_NAN) GFC_INTEGER_8 result2 = 0; diff --git a/libgfortran/generated/maxloc1_8_m4.c b/libgfortran/generated/maxloc1_8_m4.c index 8761c09162a..6a086448f1c 100644 --- a/libgfortran/generated/maxloc1_8_m4.c +++ b/libgfortran/generated/maxloc1_8_m4.c @@ -147,7 +147,7 @@ maxloc1_8_m4 (gfc_array_i8 * const restrict retarray, #if defined (GFC_UINTEGER_4_INFINITY) maxval = -GFC_UINTEGER_4_INFINITY; #else - maxval = -GFC_UINTEGER_4_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_8_m4 (gfc_array_i8 * const restrict retarray, #if defined (GFC_UINTEGER_4_INFINITY) maxval = -GFC_UINTEGER_4_INFINITY; #else - maxval = -GFC_UINTEGER_4_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_4_QUIET_NAN) GFC_INTEGER_8 result2 = 0; diff --git a/libgfortran/generated/maxloc1_8_m8.c b/libgfortran/generated/maxloc1_8_m8.c index 83c9795ab3d..497b18d2ba7 100644 --- a/libgfortran/generated/maxloc1_8_m8.c +++ b/libgfortran/generated/maxloc1_8_m8.c @@ -147,7 +147,7 @@ maxloc1_8_m8 (gfc_array_i8 * const restrict retarray, #if defined (GFC_UINTEGER_8_INFINITY) maxval = -GFC_UINTEGER_8_INFINITY; #else - maxval = -GFC_UINTEGER_8_HUGE; + maxval = 0; #endif result = 1; if (len <= 0) @@ -366,7 +366,7 @@ mmaxloc1_8_m8 (gfc_array_i8 * const restrict retarray, #if defined (GFC_UINTEGER_8_INFINITY) maxval = -GFC_UINTEGER_8_INFINITY; #else - maxval = -GFC_UINTEGER_8_HUGE; + maxval = 0; #endif #if defined (GFC_UINTEGER_8_QUIET_NAN) GFC_INTEGER_8 result2 = 0; diff --git a/libgfortran/generated/maxval_m1.c b/libgfortran/generated/maxval_m1.c index 18df9b8b575..04bf5101c1b 100644 --- a/libgfortran/generated/maxval_m1.c +++ b/libgfortran/generated/maxval_m1.c @@ -143,10 +143,10 @@ maxval_m1 (gfc_array_m1 * const restrict retarray, #if defined (GFC_UINTEGER_1_INFINITY) result = -GFC_UINTEGER_1_INFINITY; #else - result = -GFC_UINTEGER_1_HUGE; + result = 0; #endif if (len <= 0) - *dest = -GFC_UINTEGER_1_HUGE; + *dest = 0; else { #if ! defined HAVE_BACK_ARG @@ -351,7 +351,7 @@ mmaxval_m1 (gfc_array_m1 * const restrict retarray, #if defined (GFC_UINTEGER_1_INFINITY) result = -GFC_UINTEGER_1_INFINITY; #else - result = -GFC_UINTEGER_1_HUGE; + result = 0; #endif #if defined (GFC_UINTEGER_1_QUIET_NAN) int non_empty_p = 0; @@ -372,9 +372,9 @@ mmaxval_m1 (gfc_array_m1 * const restrict retarray, if (unlikely (n >= len)) { #if defined (GFC_UINTEGER_1_QUIET_NAN) - result = non_empty_p ? GFC_UINTEGER_1_QUIET_NAN : -GFC_UINTEGER_1_HUGE; + result = non_empty_p ? GFC_UINTEGER_1_QUIET_NAN : 0; #else - result = -GFC_UINTEGER_1_HUGE; + result = 0; #endif } else for (; n < len; n++, src += delta, msrc += mdelta) @@ -535,7 +535,7 @@ smaxval_m1 (gfc_array_m1 * const restrict retarray, while(1) { - *dest = -GFC_UINTEGER_1_HUGE; + *dest = 0; count[0]++; dest += dstride[0]; n = 0; diff --git a/libgfortran/generated/maxval_m16.c b/libgfortran/generated/maxval_m16.c index a66dc7aad4b..0833d019054 100644 --- a/libgfortran/generated/maxval_m16.c +++ b/libgfortran/generated/maxval_m16.c @@ -143,10 +143,10 @@ maxval_m16 (gfc_array_m16 * const restrict retarray, #if defined (GFC_UINTEGER_16_INFINITY) result = -GFC_UINTEGER_16_INFINITY; #else - result = -GFC_UINTEGER_16_HUGE; + result = 0; #endif if (len <= 0) - *dest = -GFC_UINTEGER_16_HUGE; + *dest = 0; else { #if ! defined HAVE_BACK_ARG @@ -351,7 +351,7 @@ mmaxval_m16 (gfc_array_m16 * const restrict retarray, #if defined (GFC_UINTEGER_16_INFINITY) result = -GFC_UINTEGER_16_INFINITY; #else - result = -GFC_UINTEGER_16_HUGE; + result = 0; #endif #if defined (GFC_UINTEGER_16_QUIET_NAN) int non_empty_p = 0; @@ -372,9 +372,9 @@ mmaxval_m16 (gfc_array_m16 * const restrict retarray, if (unlikely (n >= len)) { #if defined (GFC_UINTEGER_16_QUIET_NAN) - result = non_empty_p ? GFC_UINTEGER_16_QUIET_NAN : -GFC_UINTEGER_16_HUGE; + result = non_empty_p ? GFC_UINTEGER_16_QUIET_NAN : 0; #else - result = -GFC_UINTEGER_16_HUGE; + result = 0; #endif } else for (; n < len; n++, src += delta, msrc += mdelta) @@ -535,7 +535,7 @@ smaxval_m16 (gfc_array_m16 * const restrict retarray, while(1) { - *dest = -GFC_UINTEGER_16_HUGE; + *dest = 0; count[0]++; dest += dstride[0]; n = 0; diff --git a/libgfortran/generated/maxval_m2.c b/libgfortran/generated/maxval_m2.c index 19fa8de0e2a..70f3785d2c2 100644 --- a/libgfortran/generated/maxval_m2.c +++ b/libgfortran/generated/maxval_m2.c @@ -143,10 +143,10 @@ maxval_m2 (gfc_array_m2 * const restrict retarray, #if defined (GFC_UINTEGER_2_INFINITY) result = -GFC_UINTEGER_2_INFINITY; #else - result = -GFC_UINTEGER_2_HUGE; + result = 0; #endif if (len <= 0) - *dest = -GFC_UINTEGER_2_HUGE; + *dest = 0; else { #if ! defined HAVE_BACK_ARG @@ -351,7 +351,7 @@ mmaxval_m2 (gfc_array_m2 * const restrict retarray, #if defined (GFC_UINTEGER_2_INFINITY) result = -GFC_UINTEGER_2_INFINITY; #else - result = -GFC_UINTEGER_2_HUGE; + result = 0; #endif #if defined (GFC_UINTEGER_2_QUIET_NAN) int non_empty_p = 0; @@ -372,9 +372,9 @@ mmaxval_m2 (gfc_array_m2 * const restrict retarray, if (unlikely (n >= len)) { #if defined (GFC_UINTEGER_2_QUIET_NAN) - result = non_empty_p ? GFC_UINTEGER_2_QUIET_NAN : -GFC_UINTEGER_2_HUGE; + result = non_empty_p ? GFC_UINTEGER_2_QUIET_NAN : 0; #else - result = -GFC_UINTEGER_2_HUGE; + result = 0; #endif } else for (; n < len; n++, src += delta, msrc += mdelta) @@ -535,7 +535,7 @@ smaxval_m2 (gfc_array_m2 * const restrict retarray, while(1) { - *dest = -GFC_UINTEGER_2_HUGE; + *dest = 0; count[0]++; dest += dstride[0]; n = 0; diff --git a/libgfortran/generated/maxval_m4.c b/libgfortran/generated/maxval_m4.c index 6d660d8750d..3b1e79a480e 100644 --- a/libgfortran/generated/maxval_m4.c +++ b/libgfortran/generated/maxval_m4.c @@ -143,10 +143,10 @@ maxval_m4 (gfc_array_m4 * const restrict retarray, #if defined (GFC_UINTEGER_4_INFINITY) result = -GFC_UINTEGER_4_INFINITY; #else - result = -GFC_UINTEGER_4_HUGE; + result = 0; #endif if (len <= 0) - *dest = -GFC_UINTEGER_4_HUGE; + *dest = 0; else { #if ! defined HAVE_BACK_ARG @@ -351,7 +351,7 @@ mmaxval_m4 (gfc_array_m4 * const restrict retarray, #if defined (GFC_UINTEGER_4_INFINITY) result = -GFC_UINTEGER_4_INFINITY; #else - result = -GFC_UINTEGER_4_HUGE; + result = 0; #endif #if defined (GFC_UINTEGER_4_QUIET_NAN) int non_empty_p = 0; @@ -372,9 +372,9 @@ mmaxval_m4 (gfc_array_m4 * const restrict retarray, if (unlikely (n >= len)) { #if defined (GFC_UINTEGER_4_QUIET_NAN) - result = non_empty_p ? GFC_UINTEGER_4_QUIET_NAN : -GFC_UINTEGER_4_HUGE; + result = non_empty_p ? GFC_UINTEGER_4_QUIET_NAN : 0; #else - result = -GFC_UINTEGER_4_HUGE; + result = 0; #endif } else for (; n < len; n++, src += delta, msrc += mdelta) @@ -535,7 +535,7 @@ smaxval_m4 (gfc_array_m4 * const restrict retarray, while(1) { - *dest = -GFC_UINTEGER_4_HUGE; + *dest = 0; count[0]++; dest += dstride[0]; n = 0; diff --git a/libgfortran/generated/maxval_m8.c b/libgfortran/generated/maxval_m8.c index d6b7dac82bc..ece64388c06 100644 --- a/libgfortran/generated/maxval_m8.c +++ b/libgfortran/generated/maxval_m8.c @@ -143,10 +143,10 @@ maxval_m8 (gfc_array_m8 * const restrict retarray, #if defined (GFC_UINTEGER_8_INFINITY) result = -GFC_UINTEGER_8_INFINITY; #else - result = -GFC_UINTEGER_8_HUGE; + result = 0; #endif if (len <= 0) - *dest = -GFC_UINTEGER_8_HUGE; + *dest = 0; else { #if ! defined HAVE_BACK_ARG @@ -351,7 +351,7 @@ mmaxval_m8 (gfc_array_m8 * const restrict retarray, #if defined (GFC_UINTEGER_8_INFINITY) result = -GFC_UINTEGER_8_INFINITY; #else - result = -GFC_UINTEGER_8_HUGE; + result = 0; #endif #if defined (GFC_UINTEGER_8_QUIET_NAN) int non_empty_p = 0; @@ -372,9 +372,9 @@ mmaxval_m8 (gfc_array_m8 * const restrict retarray, if (unlikely (n >= len)) { #if defined (GFC_UINTEGER_8_QUIET_NAN) - result = non_empty_p ? GFC_UINTEGER_8_QUIET_NAN : -GFC_UINTEGER_8_HUGE; + result = non_empty_p ? GFC_UINTEGER_8_QUIET_NAN : 0; #else - result = -GFC_UINTEGER_8_HUGE; + result = 0; #endif } else for (; n < len; n++, src += delta, msrc += mdelta) @@ -535,7 +535,7 @@ smaxval_m8 (gfc_array_m8 * const restrict retarray, while(1) { - *dest = -GFC_UINTEGER_8_HUGE; + *dest = 0; count[0]++; dest += dstride[0]; n = 0; diff --git a/libgfortran/m4/iparm.m4 b/libgfortran/m4/iparm.m4 index 0c4c76c2428..2d6a376b138 100644 --- a/libgfortran/m4/iparm.m4 +++ b/libgfortran/m4/iparm.m4 @@ -28,7 +28,7 @@ define_type(rtype, rtype_tmp)dnl define(rtype_qual,`_'rtype_kind)dnl ')dnl define(atype_max, atype_name`_HUGE')dnl -define(atype_min,ifelse(regexp(file, `_\(.\)[0-9]*\.c$', `\1'),`i',`(-'atype_max`-1)',`-'atype_max))dnl +define(atype_min,ifelse(index(atype_name,`GFC_UINTEGER'),0,`0',ifelse(regexp(file, `_\(.\)[0-9]*\.c$', `\1'),`i',`(-'atype_max`-1)',`-'atype_max)))dnl define(atype_inf, atype_name`_INFINITY')dnl define(atype_nan, atype_name`_QUIET_NAN')dnl define(name, regexp(regexp(file, `[^/]*$', `\&'), `^\([^_]*\)_', `\1'))dnl