diff options
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/real.c | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 80846d7..7358c1c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2002-09-18 Richard Henderson <rth@redhat.com> + + * real.c (round_for_format): Collect sticky as unsigned long, not bool. + 2002-09-19 Alan Modra <amodra@bigpond.net.au> * config/rs6000/rs6000.md: (floatdisf2): Rename to @@ -2121,7 +2121,8 @@ round_for_format (fmt, r) struct real_value *r; { int p2, np2, i, w; - bool sticky, guard, lsb; + unsigned long sticky; + bool guard, lsb; int emin2m1, emax2; p2 = fmt->p * fmt->log2_b; @@ -2207,8 +2208,7 @@ round_for_format (fmt, r) sticky = 0; for (i = 0, w = (np2 - 1) / HOST_BITS_PER_LONG; i < w; ++i) - if (r->sig[i]) - sticky = 1; + sticky |= r->sig[i]; sticky |= r->sig[w] & (((unsigned long)1 << ((np2 - 1) % HOST_BITS_PER_LONG)) - 1); |
