* doublest.c (convert_doublest_to_floatformat): When dealing with the implied
integer bit, only alter mant_bits if we are processing a full 32 bits of
mantissa.
Index: doublest.c
===================================================================
RCS file: /cvs/src/src/gdb/doublest.c,v
retrieving revision 1.15
diff -u -p -r1.15 doublest.c
--- doublest.c 8 Jun 2003 18:27:13 -0000 1.15
+++ doublest.c 10 Jun 2003 18:44:30 -0000
@@ -404,7 +404,15 @@ convert_doublest_to_floatformat (CONST s
{
mant_long <<= 1;
mant_long &= 0xffffffffL;
- mant_bits -= 1;
+ /* If we are processing the top 32 mantissa bits of a doublest
+ so as to convert to a float value with implied integer bit,
+ we will only be putting 31 of those 32 bits into the
+ final value due to the discarding of the top bit. In the
+ case of a small float value where the number of mantissa
+ bits is less than 32, discarding the top bit does not alter
+ the number of bits we will be adding to the result. */
+ if (mant_bits == 32)
+ mant_bits -= 1;
}
if (mant_bits < 32)