diff --git a/gas/ChangeLog b/gas/ChangeLog index 2a8c140182..69dbe9f078 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2000-05-03 Ian Lance Taylor + + * config/atof-ieee.c (gen_to_words): When adding carry back in, + don't permit lp to become less than the words array. + 2000-05-03 Rodney Brown config/tc-mcore.c (md_apply_fix3): BFD_RELOC_MCORE_PCREL_IMM11BY2 diff --git a/gas/config/atof-ieee.c b/gas/config/atof-ieee.c index dcda1bcb6a..2e3c0dc6d0 100644 --- a/gas/config/atof-ieee.c +++ b/gas/config/atof-ieee.c @@ -1,5 +1,5 @@ /* atof_ieee.c - turn a Flonum into an IEEE floating point number - Copyright (C) 1987, 92, 93, 94, 95, 96, 97, 98, 1999 + Copyright (C) 1987, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -624,11 +624,13 @@ gen_to_words (words, precision, exponent_bits) don't get a sticky sign bit after shifting right, and that permits us to propagate the carry without any masking of bits. #endif */ - for (carry = 1, lp--; carry && (lp >= words); lp--) + for (carry = 1, lp--; carry; lp--) { carry = *lp + carry; *lp = carry; carry >>= LITTLENUM_NUMBER_OF_BITS; + if (lp == words) + break; } if (precision == X_PRECISION && exponent_bits == 15) {