This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Patch, Fortran] Use -huge()-1 as most negative integer for maxval/maxloc (PR30512)
- From: Tobias Burnus <burnus at net-b dot de>
- To: "'fortran at gcc dot gnu dot org'" <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 01 Feb 2007 09:59:27 +0100
- Subject: [Patch, Fortran] Use -huge()-1 as most negative integer for maxval/maxloc (PR30512)
:ADDPATCH fortran:
As Brooks notice, we are using -HUGE() as smallest integer value in
maxval/maxloc, which has two effects:
(a) For zero-sized arrays, the result is -HUGE() rather than -HUGE()-1
(b) maxval( (/ -HUGE(i) /)) returns -HUGE().
There are actually two things competing:
As FX pointed out: "If I understand the standard correctly, -huge()-1,
although being representible by the hardware you have, is not "within
the representation" of this integer kind, because the range of the
representation of an integer kind is supposed to be symmetric."
and
integer(1) :: a(2)
a = -128
print *, maxval(a)
which should print -128 and not -127. (I think the latter is convincing,
unless we want to have a special case for zero-size arrays which returns
-huge().)
Other compilers: g95 and pathscale 2.4 use -huge() (and thus "-127"),
ifort, sunf95 and nagf95 use -huge()-1 ("-128").
Tobias
fortran/
2007-02-01 Tobias Burnus <burnus@net-b.de>
PR fortran/30512
* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
gfc_conv_intrinsic_minmaxval): Use HUGE-1 for most negative integer.
testsuite/
2007-02-01 Tobias Burnus <burnus@net-b.de>
PR fortran/30512
* gfortran.dg/maxlocval.f90: New test.
libgfortran/
2007-02-01 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/30512
* m4/iparm.m4: Use HUGE-1 for most negative integer.
* generated/maxloc1_4_r8.c: Regenerate.
* generated/maxloc1_8_i4.c: Regenerate.
* generated/maxloc0_4_r4.c: Regenerate.
* generated/maxloc0_4_r16.c: Regenerate.
* generated/maxloc1_8_r16.c: Regenerate.
* generated/maxloc0_8_i8.c: Regenerate.
* generated/maxloc1_16_r16.c: Regenerate.
* generated/maxloc1_16_i4.c: Regenerate.
* generated/maxloc0_16_i8.c: Regenerate.
* generated/maxloc1_8_r8.c: Regenerate.
* generated/maxval_i4.c: Regenerate.
* generated/maxloc1_4_i8.c: Regenerate.
* generated/maxloc0_16_i16.c: Regenerate.
* generated/maxloc0_8_r4.c: Regenerate.
* generated/maxloc1_4_i16.c: Regenerate.
* generated/maxloc0_4_r10.c: Regenerate.
* generated/maxloc0_8_i16.c: Regenerate.
* generated/maxloc1_8_r10.c: Regenerate.
* generated/maxloc0_16_r4.c: Regenerate.
* generated/maxloc0_4_i4.c: Regenerate.
* generated/maxloc1_16_r8.c: Regenerate.
* generated/maxloc1_16_r10.c: Regenerate.
* generated/maxloc1_4_r4.c: Regenerate.
* generated/maxloc1_8_i8.c: Regenerate.
* generated/maxloc0_4_r8.c: Regenerate.
* generated/maxloc0_16_r16.c: Regenerate.
* generated/maxloc1_4_r16.c: Regenerate.
* generated/maxloc0_8_r16.c: Regenerate.
* generated/maxloc0_8_i4.c: Regenerate.
* generated/maxloc0_16_i4.c: Regenerate.
* generated/maxloc1_16_i8.c: Regenerate.
* generated/maxloc1_8_r4.c: Regenerate.
* generated/maxloc1_4_i4.c: Regenerate.
* generated/maxval_i8.c: Regenerate.
* generated/maxloc0_16_r10.c: Regenerate.
* generated/maxloc0_8_r8.c: Regenerate.
* generated/maxloc0_4_i16.c: Regenerate.
* generated/maxloc1_4_r10.c: Regenerate.
* generated/maxloc1_8_i16.c: Regenerate.
* generated/maxloc0_8_r10.c: Regenerate.
* generated/maxloc1_16_r4.c: Regenerate.
* generated/maxloc0_16_r8.c: Regenerate.
* generated/maxloc0_4_i8.c: Regenerate.
* generated/maxloc1_16_i16.c: Regenerate.
* generated/maxval_i16.c: Regenerate.
Index: gcc/fortran/trans-intrinsic.c
===================================================================
--- gcc/fortran/trans-intrinsic.c (Revision 121416)
+++ gcc/fortran/trans-intrinsic.c (Arbeitskopie)
@@ -1984,11 +1984,16 @@
gcc_unreachable ();
}
- /* Most negative(+HUGE) for maxval, most negative (-HUGE) for minval. */
+ /* Most negative(-HUGE) for maxloc, most positiv (+HUGE) for minloc. */
if (op == GT_EXPR)
tmp = fold_build1 (NEGATE_EXPR, TREE_TYPE (tmp), tmp);
gfc_add_modify_expr (&se->pre, limit, tmp);
+ /* Most negative for BT_INTEGER is -HUGE-1. */
+ if (op == GT_EXPR && expr->ts.type == BT_INTEGER)
+ tmp = build2 (MINUS_EXPR, TREE_TYPE (tmp), tmp,
+ build_int_cst (type, 1));
+
/* Initialize the scalarizer. */
gfc_init_loopinfo (&loop);
gfc_add_ss_to_loop (&loop, arrayss);
@@ -2143,9 +2148,15 @@
gcc_unreachable ();
}
- /* Most negative(-HUGE) for maxval, most positive (-HUGE) for minval. */
+ /* Most negative(-HUGE) for maxval, most positive (+HUGE) for minval. */
if (op == GT_EXPR)
tmp = fold_build1 (NEGATE_EXPR, TREE_TYPE (tmp), tmp);
+
+ /* Most negative for BT_INTEGER is -HUGE-1. */
+ if (op == GT_EXPR && expr->ts.type == BT_INTEGER)
+ tmp = build2 (MINUS_EXPR, TREE_TYPE (tmp), tmp,
+ build_int_cst (type, 1));
+
gfc_add_modify_expr (&se->pre, limit, tmp);
/* Walk the arguments. */
Index: libgfortran/m4/iparm.m4
===================================================================
--- libgfortran/m4/iparm.m4 (Revision 121416)
+++ libgfortran/m4/iparm.m4 (Arbeitskopie)
@@ -28,6 +28,6 @@
define(rtype_qual,`_'rtype_kind)dnl
')dnl
define(atype_max, atype_name`_HUGE')dnl
-define(atype_min, `-'atype_max)dnl
+define(atype_min,ifelse(rtype_letter,`i',`(-'atype_max`-1)',`-'atype_max))dnl
define(name, regexp(regexp(file, `[^/]*$', `\&'), `^\([^_]*\)_', `\1'))dnl
define(rtype_ccode,ifelse(rtype_letter,`i',rtype_kind,rtype_code))dnl
Index: gcc/testsuite/gfortran.dg/maxlocval.f90
===================================================================
--- gcc/testsuite/gfortran.dg/maxlocval.f90 (revision 0)
+++ gcc/testsuite/gfortran.dg/maxlocval.f90 (revision 0)
@@ -0,0 +1,44 @@
+! { dg-do run }
+! Check that maxval uses for integers HUGE()-1.
+! PR fortran/30512
+
+program main
+implicit none
+integer(1) :: i1(3), a1(3:2)
+integer(2) :: i2(3), a2(3:2)
+integer(4) :: i4(3), a4(3:2)
+integer(8) :: i8(3), a8(3:2)
+
+integer(kind=4), allocatable :: a(:,:)
+integer(kind=8), allocatable :: b(:,:)
+
+logical :: msk(3)
+msk = .false.
+
+i1 = 1
+i2 = 1
+i4 = 1
+i8 = 1
+
+if(-huge(i1)-1 /= maxval(i1, msk)) call abort()
+if(-huge(a1)-1 /= maxval(a1)) call abort()
+
+if(-huge(i2)-1 /= maxval(i2, msk)) call abort()
+if(-huge(a2)-1 /= maxval(a2)) call abort()
+
+if(-huge(i4)-1 /= maxval(i4, msk)) call abort() ! { dg-warning "outside symmetric range implied by Standard Fortran" }
+if(-huge(a4)-1 /= maxval(a4)) call abort() ! { dg-warning "outside symmetric range implied by Standard Fortran" }
+
+if(-huge(i8)-1 /= maxval(i8, msk)) call abort() ! { dg-warning "outside symmetric range implied by Standard Fortran" }
+if(-huge(a8)-1 /= maxval(a8)) call abort() ! { dg-warning "outside symmetric range implied by Standard Fortran" }
+
+allocate (a(0:-1,1:1))
+allocate (b(0:-1,1:1))
+
+if(any(maxval(a,dim=1) /= -huge(a)-1)) call abort() ! { dg-warning "outside symmetric range implied by Standard Fortran" }
+if(any(minval(a,dim=1) /= huge(a) )) call abort()
+
+if(any(maxval(b,dim=1) /= -huge(b)-1)) call abort() ! { dg-warning "outside symmetric range implied by Standard Fortran" }
+if(any(minval(b,dim=1) /= huge(b) )) call abort()
+
+end program main
Index: libgfortran/generated/maxloc1_4_r8.c
===================================================================
--- libgfortran/generated/maxloc1_4_r8.c (Revision 121416)
+++ libgfortran/generated/maxloc1_4_r8.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_REAL_8 maxval;
- maxval = -GFC_REAL_8_HUGE;
+ maxval = (-GFC_REAL_8_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_REAL_8 maxval;
- maxval = -GFC_REAL_8_HUGE;
+ maxval = (-GFC_REAL_8_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc1_8_i4.c
===================================================================
--- libgfortran/generated/maxloc1_8_i4.c (Revision 121416)
+++ libgfortran/generated/maxloc1_8_i4.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_INTEGER_4 maxval;
- maxval = -GFC_INTEGER_4_HUGE;
+ maxval = (-GFC_INTEGER_4_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_INTEGER_4 maxval;
- maxval = -GFC_INTEGER_4_HUGE;
+ maxval = (-GFC_INTEGER_4_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc0_4_r4.c
===================================================================
--- libgfortran/generated/maxloc0_4_r4.c (Revision 121416)
+++ libgfortran/generated/maxloc0_4_r4.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_REAL_4 maxval;
- maxval = -GFC_REAL_4_HUGE;
+ maxval = (-GFC_REAL_4_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_REAL_4 maxval;
- maxval = -GFC_REAL_4_HUGE;
+ maxval = (-GFC_REAL_4_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc0_4_r16.c
===================================================================
--- libgfortran/generated/maxloc0_4_r16.c (Revision 121416)
+++ libgfortran/generated/maxloc0_4_r16.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_REAL_16 maxval;
- maxval = -GFC_REAL_16_HUGE;
+ maxval = (-GFC_REAL_16_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_REAL_16 maxval;
- maxval = -GFC_REAL_16_HUGE;
+ maxval = (-GFC_REAL_16_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc1_8_r16.c
===================================================================
--- libgfortran/generated/maxloc1_8_r16.c (Revision 121416)
+++ libgfortran/generated/maxloc1_8_r16.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_REAL_16 maxval;
- maxval = -GFC_REAL_16_HUGE;
+ maxval = (-GFC_REAL_16_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_REAL_16 maxval;
- maxval = -GFC_REAL_16_HUGE;
+ maxval = (-GFC_REAL_16_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc0_8_i8.c
===================================================================
--- libgfortran/generated/maxloc0_8_i8.c (Revision 121416)
+++ libgfortran/generated/maxloc0_8_i8.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_INTEGER_8 maxval;
- maxval = -GFC_INTEGER_8_HUGE;
+ maxval = (-GFC_INTEGER_8_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_INTEGER_8 maxval;
- maxval = -GFC_INTEGER_8_HUGE;
+ maxval = (-GFC_INTEGER_8_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc1_16_r16.c
===================================================================
--- libgfortran/generated/maxloc1_16_r16.c (Revision 121416)
+++ libgfortran/generated/maxloc1_16_r16.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_REAL_16 maxval;
- maxval = -GFC_REAL_16_HUGE;
+ maxval = (-GFC_REAL_16_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_REAL_16 maxval;
- maxval = -GFC_REAL_16_HUGE;
+ maxval = (-GFC_REAL_16_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc1_16_i4.c
===================================================================
--- libgfortran/generated/maxloc1_16_i4.c (Revision 121416)
+++ libgfortran/generated/maxloc1_16_i4.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_INTEGER_4 maxval;
- maxval = -GFC_INTEGER_4_HUGE;
+ maxval = (-GFC_INTEGER_4_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_INTEGER_4 maxval;
- maxval = -GFC_INTEGER_4_HUGE;
+ maxval = (-GFC_INTEGER_4_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc0_16_i8.c
===================================================================
--- libgfortran/generated/maxloc0_16_i8.c (Revision 121416)
+++ libgfortran/generated/maxloc0_16_i8.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_INTEGER_8 maxval;
- maxval = -GFC_INTEGER_8_HUGE;
+ maxval = (-GFC_INTEGER_8_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_INTEGER_8 maxval;
- maxval = -GFC_INTEGER_8_HUGE;
+ maxval = (-GFC_INTEGER_8_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc1_8_r8.c
===================================================================
--- libgfortran/generated/maxloc1_8_r8.c (Revision 121416)
+++ libgfortran/generated/maxloc1_8_r8.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_REAL_8 maxval;
- maxval = -GFC_REAL_8_HUGE;
+ maxval = (-GFC_REAL_8_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_REAL_8 maxval;
- maxval = -GFC_REAL_8_HUGE;
+ maxval = (-GFC_REAL_8_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxval_i4.c
===================================================================
--- libgfortran/generated/maxval_i4.c (Revision 121416)
+++ libgfortran/generated/maxval_i4.c (Arbeitskopie)
@@ -138,9 +138,9 @@
src = base;
{
- result = -GFC_INTEGER_4_HUGE;
+ result = (-GFC_INTEGER_4_HUGE-1);
if (len <= 0)
- *dest = -GFC_INTEGER_4_HUGE;
+ *dest = (-GFC_INTEGER_4_HUGE-1);
else
{
for (n = 0; n < len; n++, src += delta)
@@ -308,9 +308,9 @@
msrc = mbase;
{
- result = -GFC_INTEGER_4_HUGE;
+ result = (-GFC_INTEGER_4_HUGE-1);
if (len <= 0)
- *dest = -GFC_INTEGER_4_HUGE;
+ *dest = (-GFC_INTEGER_4_HUGE-1);
else
{
for (n = 0; n < len; n++, src += delta, msrc += mdelta)
@@ -404,7 +404,7 @@
dest = retarray->data;
for (n = 0; n < rank; n++)
- dest[n * dstride] = -GFC_INTEGER_4_HUGE ;
+ dest[n * dstride] = (-GFC_INTEGER_4_HUGE-1) ;
}
#endif
Index: libgfortran/generated/maxloc1_4_i8.c
===================================================================
--- libgfortran/generated/maxloc1_4_i8.c (Revision 121416)
+++ libgfortran/generated/maxloc1_4_i8.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_INTEGER_8 maxval;
- maxval = -GFC_INTEGER_8_HUGE;
+ maxval = (-GFC_INTEGER_8_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_INTEGER_8 maxval;
- maxval = -GFC_INTEGER_8_HUGE;
+ maxval = (-GFC_INTEGER_8_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc0_16_i16.c
===================================================================
--- libgfortran/generated/maxloc0_16_i16.c (Revision 121416)
+++ libgfortran/generated/maxloc0_16_i16.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_INTEGER_16 maxval;
- maxval = -GFC_INTEGER_16_HUGE;
+ maxval = (-GFC_INTEGER_16_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_INTEGER_16 maxval;
- maxval = -GFC_INTEGER_16_HUGE;
+ maxval = (-GFC_INTEGER_16_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc0_8_r4.c
===================================================================
--- libgfortran/generated/maxloc0_8_r4.c (Revision 121416)
+++ libgfortran/generated/maxloc0_8_r4.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_REAL_4 maxval;
- maxval = -GFC_REAL_4_HUGE;
+ maxval = (-GFC_REAL_4_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_REAL_4 maxval;
- maxval = -GFC_REAL_4_HUGE;
+ maxval = (-GFC_REAL_4_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc1_4_i16.c
===================================================================
--- libgfortran/generated/maxloc1_4_i16.c (Revision 121416)
+++ libgfortran/generated/maxloc1_4_i16.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_INTEGER_16 maxval;
- maxval = -GFC_INTEGER_16_HUGE;
+ maxval = (-GFC_INTEGER_16_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_INTEGER_16 maxval;
- maxval = -GFC_INTEGER_16_HUGE;
+ maxval = (-GFC_INTEGER_16_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc0_4_r10.c
===================================================================
--- libgfortran/generated/maxloc0_4_r10.c (Revision 121416)
+++ libgfortran/generated/maxloc0_4_r10.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_REAL_10 maxval;
- maxval = -GFC_REAL_10_HUGE;
+ maxval = (-GFC_REAL_10_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_REAL_10 maxval;
- maxval = -GFC_REAL_10_HUGE;
+ maxval = (-GFC_REAL_10_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc0_8_i16.c
===================================================================
--- libgfortran/generated/maxloc0_8_i16.c (Revision 121416)
+++ libgfortran/generated/maxloc0_8_i16.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_INTEGER_16 maxval;
- maxval = -GFC_INTEGER_16_HUGE;
+ maxval = (-GFC_INTEGER_16_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_INTEGER_16 maxval;
- maxval = -GFC_INTEGER_16_HUGE;
+ maxval = (-GFC_INTEGER_16_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc1_8_r10.c
===================================================================
--- libgfortran/generated/maxloc1_8_r10.c (Revision 121416)
+++ libgfortran/generated/maxloc1_8_r10.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_REAL_10 maxval;
- maxval = -GFC_REAL_10_HUGE;
+ maxval = (-GFC_REAL_10_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_REAL_10 maxval;
- maxval = -GFC_REAL_10_HUGE;
+ maxval = (-GFC_REAL_10_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc0_16_r4.c
===================================================================
--- libgfortran/generated/maxloc0_16_r4.c (Revision 121416)
+++ libgfortran/generated/maxloc0_16_r4.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_REAL_4 maxval;
- maxval = -GFC_REAL_4_HUGE;
+ maxval = (-GFC_REAL_4_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_REAL_4 maxval;
- maxval = -GFC_REAL_4_HUGE;
+ maxval = (-GFC_REAL_4_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc0_4_i4.c
===================================================================
--- libgfortran/generated/maxloc0_4_i4.c (Revision 121416)
+++ libgfortran/generated/maxloc0_4_i4.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_INTEGER_4 maxval;
- maxval = -GFC_INTEGER_4_HUGE;
+ maxval = (-GFC_INTEGER_4_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_INTEGER_4 maxval;
- maxval = -GFC_INTEGER_4_HUGE;
+ maxval = (-GFC_INTEGER_4_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc1_16_r8.c
===================================================================
--- libgfortran/generated/maxloc1_16_r8.c (Revision 121416)
+++ libgfortran/generated/maxloc1_16_r8.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_REAL_8 maxval;
- maxval = -GFC_REAL_8_HUGE;
+ maxval = (-GFC_REAL_8_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_REAL_8 maxval;
- maxval = -GFC_REAL_8_HUGE;
+ maxval = (-GFC_REAL_8_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc1_16_r10.c
===================================================================
--- libgfortran/generated/maxloc1_16_r10.c (Revision 121416)
+++ libgfortran/generated/maxloc1_16_r10.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_REAL_10 maxval;
- maxval = -GFC_REAL_10_HUGE;
+ maxval = (-GFC_REAL_10_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_REAL_10 maxval;
- maxval = -GFC_REAL_10_HUGE;
+ maxval = (-GFC_REAL_10_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc1_4_r4.c
===================================================================
--- libgfortran/generated/maxloc1_4_r4.c (Revision 121416)
+++ libgfortran/generated/maxloc1_4_r4.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_REAL_4 maxval;
- maxval = -GFC_REAL_4_HUGE;
+ maxval = (-GFC_REAL_4_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_REAL_4 maxval;
- maxval = -GFC_REAL_4_HUGE;
+ maxval = (-GFC_REAL_4_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc1_8_i8.c
===================================================================
--- libgfortran/generated/maxloc1_8_i8.c (Revision 121416)
+++ libgfortran/generated/maxloc1_8_i8.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_INTEGER_8 maxval;
- maxval = -GFC_INTEGER_8_HUGE;
+ maxval = (-GFC_INTEGER_8_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_INTEGER_8 maxval;
- maxval = -GFC_INTEGER_8_HUGE;
+ maxval = (-GFC_INTEGER_8_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc0_4_r8.c
===================================================================
--- libgfortran/generated/maxloc0_4_r8.c (Revision 121416)
+++ libgfortran/generated/maxloc0_4_r8.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_REAL_8 maxval;
- maxval = -GFC_REAL_8_HUGE;
+ maxval = (-GFC_REAL_8_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_REAL_8 maxval;
- maxval = -GFC_REAL_8_HUGE;
+ maxval = (-GFC_REAL_8_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc0_16_r16.c
===================================================================
--- libgfortran/generated/maxloc0_16_r16.c (Revision 121416)
+++ libgfortran/generated/maxloc0_16_r16.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_REAL_16 maxval;
- maxval = -GFC_REAL_16_HUGE;
+ maxval = (-GFC_REAL_16_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_REAL_16 maxval;
- maxval = -GFC_REAL_16_HUGE;
+ maxval = (-GFC_REAL_16_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc1_4_r16.c
===================================================================
--- libgfortran/generated/maxloc1_4_r16.c (Revision 121416)
+++ libgfortran/generated/maxloc1_4_r16.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_REAL_16 maxval;
- maxval = -GFC_REAL_16_HUGE;
+ maxval = (-GFC_REAL_16_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_REAL_16 maxval;
- maxval = -GFC_REAL_16_HUGE;
+ maxval = (-GFC_REAL_16_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc0_8_r16.c
===================================================================
--- libgfortran/generated/maxloc0_8_r16.c (Revision 121416)
+++ libgfortran/generated/maxloc0_8_r16.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_REAL_16 maxval;
- maxval = -GFC_REAL_16_HUGE;
+ maxval = (-GFC_REAL_16_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_REAL_16 maxval;
- maxval = -GFC_REAL_16_HUGE;
+ maxval = (-GFC_REAL_16_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc0_8_i4.c
===================================================================
--- libgfortran/generated/maxloc0_8_i4.c (Revision 121416)
+++ libgfortran/generated/maxloc0_8_i4.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_INTEGER_4 maxval;
- maxval = -GFC_INTEGER_4_HUGE;
+ maxval = (-GFC_INTEGER_4_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_INTEGER_4 maxval;
- maxval = -GFC_INTEGER_4_HUGE;
+ maxval = (-GFC_INTEGER_4_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc0_16_i4.c
===================================================================
--- libgfortran/generated/maxloc0_16_i4.c (Revision 121416)
+++ libgfortran/generated/maxloc0_16_i4.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_INTEGER_4 maxval;
- maxval = -GFC_INTEGER_4_HUGE;
+ maxval = (-GFC_INTEGER_4_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_INTEGER_4 maxval;
- maxval = -GFC_INTEGER_4_HUGE;
+ maxval = (-GFC_INTEGER_4_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc1_16_i8.c
===================================================================
--- libgfortran/generated/maxloc1_16_i8.c (Revision 121416)
+++ libgfortran/generated/maxloc1_16_i8.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_INTEGER_8 maxval;
- maxval = -GFC_INTEGER_8_HUGE;
+ maxval = (-GFC_INTEGER_8_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_INTEGER_8 maxval;
- maxval = -GFC_INTEGER_8_HUGE;
+ maxval = (-GFC_INTEGER_8_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc1_8_r4.c
===================================================================
--- libgfortran/generated/maxloc1_8_r4.c (Revision 121416)
+++ libgfortran/generated/maxloc1_8_r4.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_REAL_4 maxval;
- maxval = -GFC_REAL_4_HUGE;
+ maxval = (-GFC_REAL_4_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_REAL_4 maxval;
- maxval = -GFC_REAL_4_HUGE;
+ maxval = (-GFC_REAL_4_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc1_4_i4.c
===================================================================
--- libgfortran/generated/maxloc1_4_i4.c (Revision 121416)
+++ libgfortran/generated/maxloc1_4_i4.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_INTEGER_4 maxval;
- maxval = -GFC_INTEGER_4_HUGE;
+ maxval = (-GFC_INTEGER_4_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_INTEGER_4 maxval;
- maxval = -GFC_INTEGER_4_HUGE;
+ maxval = (-GFC_INTEGER_4_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxval_i8.c
===================================================================
--- libgfortran/generated/maxval_i8.c (Revision 121416)
+++ libgfortran/generated/maxval_i8.c (Arbeitskopie)
@@ -138,9 +138,9 @@
src = base;
{
- result = -GFC_INTEGER_8_HUGE;
+ result = (-GFC_INTEGER_8_HUGE-1);
if (len <= 0)
- *dest = -GFC_INTEGER_8_HUGE;
+ *dest = (-GFC_INTEGER_8_HUGE-1);
else
{
for (n = 0; n < len; n++, src += delta)
@@ -308,9 +308,9 @@
msrc = mbase;
{
- result = -GFC_INTEGER_8_HUGE;
+ result = (-GFC_INTEGER_8_HUGE-1);
if (len <= 0)
- *dest = -GFC_INTEGER_8_HUGE;
+ *dest = (-GFC_INTEGER_8_HUGE-1);
else
{
for (n = 0; n < len; n++, src += delta, msrc += mdelta)
@@ -404,7 +404,7 @@
dest = retarray->data;
for (n = 0; n < rank; n++)
- dest[n * dstride] = -GFC_INTEGER_8_HUGE ;
+ dest[n * dstride] = (-GFC_INTEGER_8_HUGE-1) ;
}
#endif
Index: libgfortran/generated/maxloc0_16_r10.c
===================================================================
--- libgfortran/generated/maxloc0_16_r10.c (Revision 121416)
+++ libgfortran/generated/maxloc0_16_r10.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_REAL_10 maxval;
- maxval = -GFC_REAL_10_HUGE;
+ maxval = (-GFC_REAL_10_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_REAL_10 maxval;
- maxval = -GFC_REAL_10_HUGE;
+ maxval = (-GFC_REAL_10_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc0_8_r8.c
===================================================================
--- libgfortran/generated/maxloc0_8_r8.c (Revision 121416)
+++ libgfortran/generated/maxloc0_8_r8.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_REAL_8 maxval;
- maxval = -GFC_REAL_8_HUGE;
+ maxval = (-GFC_REAL_8_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_REAL_8 maxval;
- maxval = -GFC_REAL_8_HUGE;
+ maxval = (-GFC_REAL_8_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc0_4_i16.c
===================================================================
--- libgfortran/generated/maxloc0_4_i16.c (Revision 121416)
+++ libgfortran/generated/maxloc0_4_i16.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_INTEGER_16 maxval;
- maxval = -GFC_INTEGER_16_HUGE;
+ maxval = (-GFC_INTEGER_16_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_INTEGER_16 maxval;
- maxval = -GFC_INTEGER_16_HUGE;
+ maxval = (-GFC_INTEGER_16_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc1_4_r10.c
===================================================================
--- libgfortran/generated/maxloc1_4_r10.c (Revision 121416)
+++ libgfortran/generated/maxloc1_4_r10.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_REAL_10 maxval;
- maxval = -GFC_REAL_10_HUGE;
+ maxval = (-GFC_REAL_10_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_REAL_10 maxval;
- maxval = -GFC_REAL_10_HUGE;
+ maxval = (-GFC_REAL_10_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc1_8_i16.c
===================================================================
--- libgfortran/generated/maxloc1_8_i16.c (Revision 121416)
+++ libgfortran/generated/maxloc1_8_i16.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_INTEGER_16 maxval;
- maxval = -GFC_INTEGER_16_HUGE;
+ maxval = (-GFC_INTEGER_16_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_INTEGER_16 maxval;
- maxval = -GFC_INTEGER_16_HUGE;
+ maxval = (-GFC_INTEGER_16_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc0_8_r10.c
===================================================================
--- libgfortran/generated/maxloc0_8_r10.c (Revision 121416)
+++ libgfortran/generated/maxloc0_8_r10.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_REAL_10 maxval;
- maxval = -GFC_REAL_10_HUGE;
+ maxval = (-GFC_REAL_10_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_REAL_10 maxval;
- maxval = -GFC_REAL_10_HUGE;
+ maxval = (-GFC_REAL_10_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc1_16_r4.c
===================================================================
--- libgfortran/generated/maxloc1_16_r4.c (Revision 121416)
+++ libgfortran/generated/maxloc1_16_r4.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_REAL_4 maxval;
- maxval = -GFC_REAL_4_HUGE;
+ maxval = (-GFC_REAL_4_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_REAL_4 maxval;
- maxval = -GFC_REAL_4_HUGE;
+ maxval = (-GFC_REAL_4_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxloc0_16_r8.c
===================================================================
--- libgfortran/generated/maxloc0_16_r8.c (Revision 121416)
+++ libgfortran/generated/maxloc0_16_r8.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_REAL_8 maxval;
- maxval = -GFC_REAL_8_HUGE;
+ maxval = (-GFC_REAL_8_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_REAL_8 maxval;
- maxval = -GFC_REAL_8_HUGE;
+ maxval = (-GFC_REAL_8_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc0_4_i8.c
===================================================================
--- libgfortran/generated/maxloc0_4_i8.c (Revision 121416)
+++ libgfortran/generated/maxloc0_4_i8.c (Arbeitskopie)
@@ -103,7 +103,7 @@
GFC_INTEGER_8 maxval;
- maxval = -GFC_INTEGER_8_HUGE;
+ maxval = (-GFC_INTEGER_8_HUGE-1);
while (base)
{
@@ -227,7 +227,7 @@
GFC_INTEGER_8 maxval;
- maxval = -GFC_INTEGER_8_HUGE;
+ maxval = (-GFC_INTEGER_8_HUGE-1);
while (base)
{
Index: libgfortran/generated/maxloc1_16_i16.c
===================================================================
--- libgfortran/generated/maxloc1_16_i16.c (Revision 121416)
+++ libgfortran/generated/maxloc1_16_i16.c (Arbeitskopie)
@@ -140,7 +140,7 @@
{
GFC_INTEGER_16 maxval;
- maxval = -GFC_INTEGER_16_HUGE;
+ maxval = (-GFC_INTEGER_16_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
@@ -315,7 +315,7 @@
{
GFC_INTEGER_16 maxval;
- maxval = -GFC_INTEGER_16_HUGE;
+ maxval = (-GFC_INTEGER_16_HUGE-1);
result = 0;
if (len <= 0)
*dest = 0;
Index: libgfortran/generated/maxval_i16.c
===================================================================
--- libgfortran/generated/maxval_i16.c (Revision 121416)
+++ libgfortran/generated/maxval_i16.c (Arbeitskopie)
@@ -138,9 +138,9 @@
src = base;
{
- result = -GFC_INTEGER_16_HUGE;
+ result = (-GFC_INTEGER_16_HUGE-1);
if (len <= 0)
- *dest = -GFC_INTEGER_16_HUGE;
+ *dest = (-GFC_INTEGER_16_HUGE-1);
else
{
for (n = 0; n < len; n++, src += delta)
@@ -308,9 +308,9 @@
msrc = mbase;
{
- result = -GFC_INTEGER_16_HUGE;
+ result = (-GFC_INTEGER_16_HUGE-1);
if (len <= 0)
- *dest = -GFC_INTEGER_16_HUGE;
+ *dest = (-GFC_INTEGER_16_HUGE-1);
else
{
for (n = 0; n < len; n++, src += delta, msrc += mdelta)
@@ -404,7 +404,7 @@
dest = retarray->data;
for (n = 0; n < rank; n++)
- dest[n * dstride] = -GFC_INTEGER_16_HUGE ;
+ dest[n * dstride] = (-GFC_INTEGER_16_HUGE-1) ;
}
#endif