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  <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.

(cherry picked from commit 8c73c99b6a8c3a562fef360bc269bd60bab36076)
diff --git a/libgfortran/generated/maxloc0_16_m1.c b/libgfortran/generated/maxloc0_16_m1.c
index d13ebbf..2a47b9e 100644
--- a/libgfortran/generated/maxloc0_16_m1.c
+++ b/libgfortran/generated/maxloc0_16_m1.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 00cb09b..1003fdb 100644
--- a/libgfortran/generated/maxloc0_16_m16.c
+++ b/libgfortran/generated/maxloc0_16_m16.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 3244952..49b92f7 100644
--- a/libgfortran/generated/maxloc0_16_m2.c
+++ b/libgfortran/generated/maxloc0_16_m2.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 3cda598d..0144125 100644
--- a/libgfortran/generated/maxloc0_16_m4.c
+++ b/libgfortran/generated/maxloc0_16_m4.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 f98485d..96d6295 100644
--- a/libgfortran/generated/maxloc0_16_m8.c
+++ b/libgfortran/generated/maxloc0_16_m8.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 7ae89c1..7825952 100644
--- a/libgfortran/generated/maxloc0_4_m1.c
+++ b/libgfortran/generated/maxloc0_4_m1.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 8d62e04..4e90c49 100644
--- a/libgfortran/generated/maxloc0_4_m16.c
+++ b/libgfortran/generated/maxloc0_4_m16.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 c8cf68b..b6b530b 100644
--- a/libgfortran/generated/maxloc0_4_m2.c
+++ b/libgfortran/generated/maxloc0_4_m2.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 3f5f550..b3ee5af 100644
--- a/libgfortran/generated/maxloc0_4_m4.c
+++ b/libgfortran/generated/maxloc0_4_m4.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 d4c30f8..4f7ec05 100644
--- a/libgfortran/generated/maxloc0_4_m8.c
+++ b/libgfortran/generated/maxloc0_4_m8.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 af97213..2b4b0e7 100644
--- a/libgfortran/generated/maxloc0_8_m1.c
+++ b/libgfortran/generated/maxloc0_8_m1.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 e2d47b6..da03132 100644
--- a/libgfortran/generated/maxloc0_8_m16.c
+++ b/libgfortran/generated/maxloc0_8_m16.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 390fc8f..0c7b74c 100644
--- a/libgfortran/generated/maxloc0_8_m2.c
+++ b/libgfortran/generated/maxloc0_8_m2.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 05dda2c..307a04b 100644
--- a/libgfortran/generated/maxloc0_8_m4.c
+++ b/libgfortran/generated/maxloc0_8_m4.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 48875e7..5160418 100644
--- a/libgfortran/generated/maxloc0_8_m8.c
+++ b/libgfortran/generated/maxloc0_8_m8.c
@@ -96,7 +96,7 @@
 #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 @@
 #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 14961da..4d78e75 100644
--- a/libgfortran/generated/maxloc1_16_m1.c
+++ b/libgfortran/generated/maxloc1_16_m1.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 d97dbc0..e6f1ae3 100644
--- a/libgfortran/generated/maxloc1_16_m16.c
+++ b/libgfortran/generated/maxloc1_16_m16.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 0187b68..8bb48dd 100644
--- a/libgfortran/generated/maxloc1_16_m2.c
+++ b/libgfortran/generated/maxloc1_16_m2.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 480a524..659d6cf 100644
--- a/libgfortran/generated/maxloc1_16_m4.c
+++ b/libgfortran/generated/maxloc1_16_m4.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 ecbaba3..a6d2c08 100644
--- a/libgfortran/generated/maxloc1_16_m8.c
+++ b/libgfortran/generated/maxloc1_16_m8.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 e69d49d..709a1dd 100644
--- a/libgfortran/generated/maxloc1_4_m1.c
+++ b/libgfortran/generated/maxloc1_4_m1.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 0ed90bb..cc10527 100644
--- a/libgfortran/generated/maxloc1_4_m16.c
+++ b/libgfortran/generated/maxloc1_4_m16.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 76aa8d1..06f989c 100644
--- a/libgfortran/generated/maxloc1_4_m2.c
+++ b/libgfortran/generated/maxloc1_4_m2.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 3313c14..6a52a0a 100644
--- a/libgfortran/generated/maxloc1_4_m4.c
+++ b/libgfortran/generated/maxloc1_4_m4.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 1f39517..e2f92a9 100644
--- a/libgfortran/generated/maxloc1_4_m8.c
+++ b/libgfortran/generated/maxloc1_4_m8.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 7c3ac0f9..2f2ff5a 100644
--- a/libgfortran/generated/maxloc1_8_m1.c
+++ b/libgfortran/generated/maxloc1_8_m1.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 c643963..c0c47bb 100644
--- a/libgfortran/generated/maxloc1_8_m16.c
+++ b/libgfortran/generated/maxloc1_8_m16.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 2fa5c3b..cf915b0 100644
--- a/libgfortran/generated/maxloc1_8_m2.c
+++ b/libgfortran/generated/maxloc1_8_m2.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 8761c09..6a08644 100644
--- a/libgfortran/generated/maxloc1_8_m4.c
+++ b/libgfortran/generated/maxloc1_8_m4.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 83c9795..497b18d 100644
--- a/libgfortran/generated/maxloc1_8_m8.c
+++ b/libgfortran/generated/maxloc1_8_m8.c
@@ -147,7 +147,7 @@
 #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 @@
 #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 18df9b8..04bf510 100644
--- a/libgfortran/generated/maxval_m1.c
+++ b/libgfortran/generated/maxval_m1.c
@@ -143,10 +143,10 @@
 #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 @@
 #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 @@
 	    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 @@
 
   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 a66dc7a..0833d01 100644
--- a/libgfortran/generated/maxval_m16.c
+++ b/libgfortran/generated/maxval_m16.c
@@ -143,10 +143,10 @@
 #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 @@
 #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 @@
 	    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 @@
 
   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 19fa8de..70f3785 100644
--- a/libgfortran/generated/maxval_m2.c
+++ b/libgfortran/generated/maxval_m2.c
@@ -143,10 +143,10 @@
 #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 @@
 #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 @@
 	    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 @@
 
   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 6d660d8..3b1e79a 100644
--- a/libgfortran/generated/maxval_m4.c
+++ b/libgfortran/generated/maxval_m4.c
@@ -143,10 +143,10 @@
 #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 @@
 #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 @@
 	    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 @@
 
   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 d6b7dac..ece6438 100644
--- a/libgfortran/generated/maxval_m8.c
+++ b/libgfortran/generated/maxval_m8.c
@@ -143,10 +143,10 @@
 #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 @@
 #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 @@
 	    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 @@
 
   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 0c4c76c..2d6a376 100644
--- a/libgfortran/m4/iparm.m4
+++ b/libgfortran/m4/iparm.m4
@@ -28,7 +28,7 @@
 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