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.