]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Avoid abort() on FreeBSD 6.1/x86.
authorBruno Haible <bruno@clisp.org>
Wed, 28 Nov 2007 13:05:56 +0000 (13:05 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:15:34 +0000 (12:15 +0200)
gettext-runtime/intl/ChangeLog
gettext-runtime/intl/vasnprintf.c
gettext-runtime/libasprintf/ChangeLog
gettext-runtime/libasprintf/vasnprintf.c

index dd530011b7f290281e00e5f06d9ff0fb233bd433..44973c1ebe9650e4bd6516a7bcb0942b6f64d8e9 100644 (file)
@@ -1,3 +1,10 @@
+2007-11-26  Bruno Haible  <bruno@clisp.org>
+
+       * vasnprintf.c (decode_long_double): Don't abort if the 'long double'
+       type has excess precision.
+       Reported by Jim Meyering in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2007-11/msg00120.html>.
+
 2007-11-15  Bruno Haible  <bruno@clisp.org>
 
        Avoid crash by stack overflow when msgid is very long.
index a5fddfadef67064c103113c56515f5c1a6d6bb0b..c7b5b816dde3b053257d7fea50e7aee5e1bf3fc3 100644 (file)
@@ -872,8 +872,11 @@ decode_long_double (long double x, int *ep, mpn_t *mp)
        abort ();
       m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo;
     }
+#if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess
+         precision.  */
   if (!(y == 0.0L))
     abort ();
+#endif
   /* Normalise.  */
   while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0)
     m.nlimbs--;
index 13be3f94eecd21b1380d392b9d01825e9c84f5db..ef26cc92c124760f1f0ec5434bae5a0649cac7e4 100644 (file)
@@ -1,3 +1,10 @@
+2007-11-26  Bruno Haible  <bruno@clisp.org>
+
+       * vasnprintf.c (decode_long_double): Don't abort if the 'long double'
+       type has excess precision.
+       Reported by Jim Meyering in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2007-11/msg00120.html>.
+
 2007-11-10  Bruno Haible  <bruno@clisp.org>
 
        * configure.ac: Do _snprintf check like gnulib's vasnprintf.m4 does.
index a5fddfadef67064c103113c56515f5c1a6d6bb0b..c7b5b816dde3b053257d7fea50e7aee5e1bf3fc3 100644 (file)
@@ -872,8 +872,11 @@ decode_long_double (long double x, int *ep, mpn_t *mp)
        abort ();
       m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo;
     }
+#if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess
+         precision.  */
   if (!(y == 0.0L))
     abort ();
+#endif
   /* Normalise.  */
   while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0)
     m.nlimbs--;