aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/real.c6
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
diff --git a/gcc/real.c b/gcc/real.c
index cf72b4c..57127b6 100644
--- a/gcc/real.c
+++ b/gcc/real.c
@@ -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);