[gnu.gcc.bug] warning about the range of `double'

bates@STAT.WISC.EDU (Douglas M. Bates) (05/27/89)

 System: Sun-3 running SunOS 4.0.1

bayes> cat tt.c
#include <stdio.h>
#include <values.h>
main()
{
  printf("%24.20g\n",MINDOUBLE);
}
bayes> gcc -v tt.c
gcc version 1.35
 /usr/misc/lib/gcc-cpp -v -undef -D__GNUC__ -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__HAVE_68881__ -Dmc68020 tt.c /tmp/cca22956.cpp
GNU CPP version 1.35
 /usr/misc/lib/gcc-cc1 /tmp/cca22956.cpp -quiet -dumpbase tt.c -version -o /tmp/cca22956.s
GNU C version 1.35 (68k, MIT syntax) compiled by GNU C version 1.35.
tt.c: In function main:
tt.c:5: warning: floating point number exceeds range of `double'
 as -mc68020 -o tt.o /tmp/cca22956.s
 ld -e start -dc -dp /lib/crt0.o /lib/Mcrt1.o tt.o /usr/misc/lib/gcc-gnulib -lc
bayes> a.out
4.9406564584124654418e-324

I haven't checked the IEEE floating point specification but I believe
MINDOUBLE as defined in /usr/include/values.h is a legitimate double
precision number.  I am also suspicious of the message that the number
_exceeds_ the range of `double'.  Note that MAXDOUBLE is
1.79769313486231470e+308 so that 4.94065645841246544e+324 (i.e. the
value of MINDOUBLE with the opposite sign in the exponent) would
exceed the range of `double'.

rms@AI.MIT.EDU (05/27/89)

The out of range condition is detected and reported by atof.
If there is a bug, it is not in GCC.