+2004-11-29 Jakub Jelinek <jakub@redhat.com>
+
+ * stdlib/strtod_l.c (INTERNAL (__STRTOF)): If densize > 2
+ and numsize < densize, always shift num up by empty + 1 limbs.
+
2004-12-07 Paolo Bonzini <bonzini@gnu.org>
* posix/regexec.c (proceed_next_node): Simplify treatment of epsilon
if (numsize < densize)
{
mp_size_t empty = densize - numsize;
+ register int i;
if (bits <= 0)
- {
- register int i;
- for (i = numsize; i > 0; --i)
- num[i + empty] = num[i - 1];
- MPN_ZERO (num, empty + 1);
- exponent -= empty * BITS_PER_MP_LIMB;
- }
+ exponent -= empty * BITS_PER_MP_LIMB;
else
{
if (bits + empty * BITS_PER_MP_LIMB <= MANT_DIG)
cannot optimize the `else' case that good and
this reflects all currently used FLOAT types
and GMP implementations. */
- register int i;
#if RETURN_LIMB_SIZE <= 2
assert (empty == 1);
__mpn_lshift_1 (retval, RETURN_LIMB_SIZE,
while (i >= 0)
retval[i--] = 0;
#endif
- for (i = numsize; i > 0; --i)
- num[i + empty] = num[i - 1];
- MPN_ZERO (num, empty + 1);
}
else
{
}
bits += empty * BITS_PER_MP_LIMB;
}
+ for (i = numsize; i > 0; --i)
+ num[i + empty] = num[i - 1];
+ MPN_ZERO (num, empty + 1);
}
else
{