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)
#if defined(GFC_UINTEGER_1_INFINITY)
maxval = -GFC_UINTEGER_1_INFINITY;
#else
- maxval = -GFC_UINTEGER_1_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_1_INFINITY)
maxval = -GFC_UINTEGER_1_INFINITY;
#else
- maxval = -GFC_UINTEGER_1_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_16_INFINITY)
maxval = -GFC_UINTEGER_16_INFINITY;
#else
- maxval = -GFC_UINTEGER_16_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_16_INFINITY)
maxval = -GFC_UINTEGER_16_INFINITY;
#else
- maxval = -GFC_UINTEGER_16_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_2_INFINITY)
maxval = -GFC_UINTEGER_2_INFINITY;
#else
- maxval = -GFC_UINTEGER_2_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_2_INFINITY)
maxval = -GFC_UINTEGER_2_INFINITY;
#else
- maxval = -GFC_UINTEGER_2_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_4_INFINITY)
maxval = -GFC_UINTEGER_4_INFINITY;
#else
- maxval = -GFC_UINTEGER_4_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_4_INFINITY)
maxval = -GFC_UINTEGER_4_INFINITY;
#else
- maxval = -GFC_UINTEGER_4_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_8_INFINITY)
maxval = -GFC_UINTEGER_8_INFINITY;
#else
- maxval = -GFC_UINTEGER_8_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_8_INFINITY)
maxval = -GFC_UINTEGER_8_INFINITY;
#else
- maxval = -GFC_UINTEGER_8_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_1_INFINITY)
maxval = -GFC_UINTEGER_1_INFINITY;
#else
- maxval = -GFC_UINTEGER_1_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_1_INFINITY)
maxval = -GFC_UINTEGER_1_INFINITY;
#else
- maxval = -GFC_UINTEGER_1_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_16_INFINITY)
maxval = -GFC_UINTEGER_16_INFINITY;
#else
- maxval = -GFC_UINTEGER_16_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_16_INFINITY)
maxval = -GFC_UINTEGER_16_INFINITY;
#else
- maxval = -GFC_UINTEGER_16_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_2_INFINITY)
maxval = -GFC_UINTEGER_2_INFINITY;
#else
- maxval = -GFC_UINTEGER_2_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_2_INFINITY)
maxval = -GFC_UINTEGER_2_INFINITY;
#else
- maxval = -GFC_UINTEGER_2_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_4_INFINITY)
maxval = -GFC_UINTEGER_4_INFINITY;
#else
- maxval = -GFC_UINTEGER_4_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_4_INFINITY)
maxval = -GFC_UINTEGER_4_INFINITY;
#else
- maxval = -GFC_UINTEGER_4_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_8_INFINITY)
maxval = -GFC_UINTEGER_8_INFINITY;
#else
- maxval = -GFC_UINTEGER_8_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_8_INFINITY)
maxval = -GFC_UINTEGER_8_INFINITY;
#else
- maxval = -GFC_UINTEGER_8_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_1_INFINITY)
maxval = -GFC_UINTEGER_1_INFINITY;
#else
- maxval = -GFC_UINTEGER_1_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_1_INFINITY)
maxval = -GFC_UINTEGER_1_INFINITY;
#else
- maxval = -GFC_UINTEGER_1_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_16_INFINITY)
maxval = -GFC_UINTEGER_16_INFINITY;
#else
- maxval = -GFC_UINTEGER_16_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_16_INFINITY)
maxval = -GFC_UINTEGER_16_INFINITY;
#else
- maxval = -GFC_UINTEGER_16_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_2_INFINITY)
maxval = -GFC_UINTEGER_2_INFINITY;
#else
- maxval = -GFC_UINTEGER_2_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_2_INFINITY)
maxval = -GFC_UINTEGER_2_INFINITY;
#else
- maxval = -GFC_UINTEGER_2_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_4_INFINITY)
maxval = -GFC_UINTEGER_4_INFINITY;
#else
- maxval = -GFC_UINTEGER_4_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_4_INFINITY)
maxval = -GFC_UINTEGER_4_INFINITY;
#else
- maxval = -GFC_UINTEGER_4_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_8_INFINITY)
maxval = -GFC_UINTEGER_8_INFINITY;
#else
- maxval = -GFC_UINTEGER_8_HUGE;
+ maxval = 0;
#endif
while (base)
{
#if defined(GFC_UINTEGER_8_INFINITY)
maxval = -GFC_UINTEGER_8_INFINITY;
#else
- maxval = -GFC_UINTEGER_8_HUGE;
+ maxval = 0;
#endif
while (base)
{
#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)
#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;
#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)
#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;
#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)
#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;
#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)
#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;
#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)
#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;
#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)
#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;
#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)
#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;
#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)
#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;
#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)
#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;
#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)
#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;
#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)
#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;
#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)
#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;
#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)
#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;
#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)
#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;
#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)
#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;
#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
#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;
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)
while(1)
{
- *dest = -GFC_UINTEGER_1_HUGE;
+ *dest = 0;
count[0]++;
dest += dstride[0];
n = 0;
#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
#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;
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)
while(1)
{
- *dest = -GFC_UINTEGER_16_HUGE;
+ *dest = 0;
count[0]++;
dest += dstride[0];
n = 0;
#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
#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;
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)
while(1)
{
- *dest = -GFC_UINTEGER_2_HUGE;
+ *dest = 0;
count[0]++;
dest += dstride[0];
n = 0;
#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
#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;
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)
while(1)
{
- *dest = -GFC_UINTEGER_4_HUGE;
+ *dest = 0;
count[0]++;
dest += dstride[0];
n = 0;
#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
#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;
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)
while(1)
{
- *dest = -GFC_UINTEGER_8_HUGE;
+ *dest = 0;
count[0]++;
dest += dstride[0];
n = 0;
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