The floating-point output code crashed due to an abort() for values with
large exponents (> 1e34 for 'double'). This fixes it.

2007-11-04  Bruno Haible  <[EMAIL PROTECTED]>

        * lib/vasnprintf.c (scale10_round_decimal_decoded): Fix shift loop.

--- lib/vasnprintf.c.orig       2007-11-04 14:55:02.000000000 +0100
+++ lib/vasnprintf.c    2007-11-04 14:54:53.000000000 +0100
@@ -1151,7 +1151,7 @@
                size_t count;
                for (count = m.nlimbs; count > 0; count--)
                  {
-                   accu += (mp_twolimb_t) *sourceptr++ << s;
+                   accu += (mp_twolimb_t) *sourceptr++ << s_bits;
                    *destptr++ = (mp_limb_t) accu;
                    accu = accu >> GMP_LIMB_BITS;
                  }



Reply via email to