* config/atof-ieee.c (gen_to_words): When adding carry back in,
authorIan Lance Taylor <ian@airs.com>
Wed, 3 May 2000 21:23:52 +0000 (21:23 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 3 May 2000 21:23:52 +0000 (21:23 +0000)
don't permit lp to become less than the words array.

gas/ChangeLog
gas/config/atof-ieee.c

index 2a8c140..69dbe9f 100644 (file)
@@ -1,3 +1,8 @@
+2000-05-03  Ian Lance Taylor  <ian@zembu.com>
+
+       * 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  <RodneyBrown@pmsc.com>
 
        config/tc-mcore.c (md_apply_fix3): BFD_RELOC_MCORE_PCREL_IMM11BY2
index dcda1bc..2e3c0dc 100644 (file)
@@ -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)
        {