diff -Naur mpfr-2.1.1-p8/add1.c mpfr-2.1.1-p9/add1.c --- mpfr-2.1.1-p8/add1.c 2004-03-26 13:27:15.000000000 +0000 +++ mpfr-2.1.1-p9/add1.c 2005-06-08 11:37:27.000000000 +0000 @@ -1,6 +1,6 @@ /* mpfr_add1 -- internal function to perform a "real" addition -Copyright 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation. +Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation. Contributed by the Spaces project, INRIA Lorraine. This file is part of the MPFR Library. @@ -523,14 +523,13 @@ add_one_ulp: /* add one unit in last place to a */ if (MPFR_UNLIKELY(mpn_add_1(ap, ap, an, MPFR_LIMB_ONE << sh))) { - /* Case 100000x0 + 1*/ if (MPFR_UNLIKELY(exp == __gmpfr_emax)) - inex = mpfr_set_overflow(a, rnd_mode, MPFR_SIGN(a)); - else { - exp++; - ap[an-1] = MPFR_LIMB_HIGHBIT; + inex = mpfr_set_overflow(a, rnd_mode, MPFR_SIGN(a)); + goto end_of_add; } + exp++; + ap[an-1] = MPFR_LIMB_HIGHBIT; } set_exponent: