convert_doublest_to_floatformat: handle off-range values.
On x86_64-linux targetting AVR, we see the following issues:
(gdb) print 1.6e+308
$1 = 0.
89002949
(gdb) print 1.6e-308
$3 = 2.
87630892
What happens is that GDB is trying to convert the value it read
(as a host "long double") into a target "double" value. The routine
performing the conversion does not realize that 1.6e+308 is just
too large to fit in a double. Similarly, it does not notice that
1.6e-308 is too small to be represented.
This patch enhances convert_doublest_to_floatformat to both handle
floats that are too small and too large.
gdb/ChangeLog:
* doublest.c (convert_doublest_to_floatformat): If the exponent
is too small, treat the value as zero. If the exponent is too
large, treat the value as infinity.