]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libfortran: Fix up maxval/maxloc for UNSIGNED [PR120158]
authorJakub Jelinek <jakub@redhat.com>
Thu, 8 May 2025 07:36:30 +0000 (09:36 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 8 May 2025 07:36:30 +0000 (09:36 +0200)
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  <jakub@redhat.com>

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.

36 files changed:
libgfortran/generated/maxloc0_16_m1.c
libgfortran/generated/maxloc0_16_m16.c
libgfortran/generated/maxloc0_16_m2.c
libgfortran/generated/maxloc0_16_m4.c
libgfortran/generated/maxloc0_16_m8.c
libgfortran/generated/maxloc0_4_m1.c
libgfortran/generated/maxloc0_4_m16.c
libgfortran/generated/maxloc0_4_m2.c
libgfortran/generated/maxloc0_4_m4.c
libgfortran/generated/maxloc0_4_m8.c
libgfortran/generated/maxloc0_8_m1.c
libgfortran/generated/maxloc0_8_m16.c
libgfortran/generated/maxloc0_8_m2.c
libgfortran/generated/maxloc0_8_m4.c
libgfortran/generated/maxloc0_8_m8.c
libgfortran/generated/maxloc1_16_m1.c
libgfortran/generated/maxloc1_16_m16.c
libgfortran/generated/maxloc1_16_m2.c
libgfortran/generated/maxloc1_16_m4.c
libgfortran/generated/maxloc1_16_m8.c
libgfortran/generated/maxloc1_4_m1.c
libgfortran/generated/maxloc1_4_m16.c
libgfortran/generated/maxloc1_4_m2.c
libgfortran/generated/maxloc1_4_m4.c
libgfortran/generated/maxloc1_4_m8.c
libgfortran/generated/maxloc1_8_m1.c
libgfortran/generated/maxloc1_8_m16.c
libgfortran/generated/maxloc1_8_m2.c
libgfortran/generated/maxloc1_8_m4.c
libgfortran/generated/maxloc1_8_m8.c
libgfortran/generated/maxval_m1.c
libgfortran/generated/maxval_m16.c
libgfortran/generated/maxval_m2.c
libgfortran/generated/maxval_m4.c
libgfortran/generated/maxval_m8.c
libgfortran/m4/iparm.m4

index d13ebbf134cac1255a0733b9c579c698be036bee..2a47b9ebc12546164e7f1bdcc9554e4a9a33bbe0 100644 (file)
@@ -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)
     {
index 00cb09b640fa45f00bc52c9da578790de34cac44..1003fdb7251a0b6c381fd3bd771d6f09054af036 100644 (file)
@@ -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)
     {
index 32449528199478c677e93e847985b49f8d6983fc..49b92f7eb98d3cce4666513aa11b4f18971d9344 100644 (file)
@@ -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)
     {
index 3cda598de77b19c752dc8e229d4e516bb689b313..0144125709be68786e9bfa8a5246deff3803500a 100644 (file)
@@ -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)
     {
index f98485d06dfae3456544b3dd92705b2c7e379154..96d6295e5c5c82edf30d906dcee38d96cb606f9d 100644 (file)
@@ -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)
     {
index 7ae89c1a7742509fbb88f2dab7149495233426aa..782595234711c813d3d09e022bf8e1b11debb3d0 100644 (file)
@@ -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)
     {
index 8d62e0469289d56784d638174a61e7b3ece229ec..4e90c491d63a77a1f2d407b1e4b6c57bd631375e 100644 (file)
@@ -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)
     {
index c8cf68bac09990d125608d2239065e8f2ec31a0b..b6b530bed63611dbb03731692fd0078160de99e7 100644 (file)
@@ -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)
     {
index 3f5f5500d63eee1faeb889e06a081d88ce9fa013..b3ee5af083be24ebd691db3d8e6ea41cbbf800d6 100644 (file)
@@ -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)
     {
index d4c30f8a6390df223ff8b09f2634e3ffd6032198..4f7ec059f965026a066fe71a627cf6e04dbe31aa 100644 (file)
@@ -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)
     {
index af972135410e0dd3d8fa96d177a8b8ceaefbaad9..2b4b0e7fcbec211636b5a25ff0a9e907a235d967 100644 (file)
@@ -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)
     {
index e2d47b6078cc12890c7bdc8498cde0dd61d7564c..da03132c2e8b403f647c3092e0d7aeaba523e4c8 100644 (file)
@@ -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)
     {
index 390fc8f9fd1436fb424f5d556299c524f6fa768c..0c7b74c06f80a20e4ac07dccda1dc311e59b748b 100644 (file)
@@ -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)
     {
index 05dda2c334b0aee95a297b16afe49780dbc388de..307a04b697c6178d03c6aecd4e4149bd886e51a0 100644 (file)
@@ -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)
     {
index 48875e7f9b52e97ca1f86841268d6f5527f46610..5160418c8d95241cfe15e79c9ec43aa52df69a22 100644 (file)
@@ -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)
     {
index 14961da84d537de4007c831fd83fd38c049e98c0..4d78e75f3349b3cdf44964e3c61fd87908c52e19 100644 (file)
@@ -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;
index d97dbc0c38efd246d48b34a26714f0433d592a87..e6f1ae3607b6e3d2bd3488568025bd827b5e3680 100644 (file)
@@ -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;
index 0187b685ad48f11b832b017960d81de54f31927f..8bb48ddaeba73c3c65777fd403de891310c3d705 100644 (file)
@@ -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;
index 480a524878bb94f3827f689c263ea55fdda67849..659d6cf6abb9fa38b04e309b45dc0d2172c26647 100644 (file)
@@ -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;
index ecbaba3685bd4077579ce2043c99bdded2db4146..a6d2c08a5608a32627147b1b5055f941ccf64e2b 100644 (file)
@@ -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;
index e69d49d77e1797f36cbbed5d28ce25dbb9498589..709a1ddd38af7cc9086bda70a6eae52c69d43f0c 100644 (file)
@@ -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;
index 0ed90bb3319eea1e84bbb956b70632280c5673a3..cc10527a49a25fc50b004624dd5b625a3a4085f5 100644 (file)
@@ -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;
index 76aa8d1ab3bb50b25f629438712d215861a548a2..06f989cee5d1555650d6567b4de6581aeb163374 100644 (file)
@@ -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;
index 3313c14aeff1555d97883ac7890191b446f8812b..6a52a0a2f43952c6a11425281e7e8c164ae8ef27 100644 (file)
@@ -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;
index 1f39517078c75c8178e349596a3decedb07919a6..e2f92a9a2125da8c67101f38e056ba937225e9d6 100644 (file)
@@ -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;
index 7c3ac0f96e98703c763959f97087f3ee2e05c77b..2f2ff5ad0a04cbab09f5073c45e2bd8d17ff67ee 100644 (file)
@@ -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;
index c643963af01518a49267610b70bd558ec65b05b3..c0c47bb16d60be0b9ae62fa6c6fcdeb669327875 100644 (file)
@@ -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;
index 2fa5c3b35358537521666107387c692e1fce6542..cf915b07b48a395c47d2b0a9afe0d12e459fe864 100644 (file)
@@ -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;
index 8761c09162ac11e31b03f8622b61e26f8625354c..6a086448f1ccb056033627d8d2774f5ac318c1c1 100644 (file)
@@ -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;
index 83c9795ab3dbc95a2f844f7ac252ac378ac98e51..497b18d2ba7be03c44ef745f4db9f5be753ed1d2 100644 (file)
@@ -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;
index 18df9b8b575c0c49ff31f6246e2408c8add9fcde..04bf5101c1b50f48ac4d5c138ae2cb53e5d1bbb1 100644 (file)
@@ -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;
index a66dc7aad4bcac66c22189a7f688e70e8ef89b25..0833d019054416275d3eeff1b38aff11fdf003e5 100644 (file)
@@ -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;
index 19fa8de0e2a0ed559dd203c0989974cfb780a81e..70f3785d2c2c427b8040198adff10f78ed1553f1 100644 (file)
@@ -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;
index 6d660d8750dbe4c92bac5349112d9bc371da008e..3b1e79a480e626566099250c99f86b289aab5a19 100644 (file)
@@ -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;
index d6b7dac82bcf309454ac6a755ffacb3a3fde4052..ece64388c06f08fc071317f8f87171fa3f8b5e99 100644 (file)
@@ -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;
index 0c4c76c2428cbd58d85755e6885cd50bfa09e645..2d6a376b1384944fc6f735bb36e8af3247710962 100644 (file)
@@ -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