Commit 1c673473 by J"orn Rennecke Committed by Joern Rennecke

real.c (do_add): Initialize signalling and canonical members.

	* real.c (do_add): Initialize signalling and canonical members.

	* real.c (real_from_integer): Zero out destination.

From-SVN: r94228
parent ed464869
2005-01-25 J"orn Rennecke <joern.rennecke@st.com>
* real.c (do_add): Initialize signalling and canonical members.
* real.c (real_from_integer): Zero out destination.
2005-01-18 Jan Hubicka <jh@suse.cz> 2005-01-18 Jan Hubicka <jh@suse.cz>
PR tree-optimize/19337 PR tree-optimize/19337
......
...@@ -640,6 +640,9 @@ do_add (REAL_VALUE_TYPE *r, const REAL_VALUE_TYPE *a, ...@@ -640,6 +640,9 @@ do_add (REAL_VALUE_TYPE *r, const REAL_VALUE_TYPE *a,
r->cl = rvc_normal; r->cl = rvc_normal;
r->sign = sign; r->sign = sign;
SET_REAL_EXP (r, exp); SET_REAL_EXP (r, exp);
/* Zero out the remaining fields. */
r->signalling = 0;
r->canonical = 0;
/* Re-normalize the result. */ /* Re-normalize the result. */
normalize (r); normalize (r);
...@@ -1957,6 +1960,7 @@ real_from_integer (REAL_VALUE_TYPE *r, enum machine_mode mode, ...@@ -1957,6 +1960,7 @@ real_from_integer (REAL_VALUE_TYPE *r, enum machine_mode mode,
get_zero (r, 0); get_zero (r, 0);
else else
{ {
memset (r, 0, sizeof (*r));
r->cl = rvc_normal; r->cl = rvc_normal;
r->sign = high < 0 && !unsigned_p; r->sign = high < 0 && !unsigned_p;
SET_REAL_EXP (r, 2 * HOST_BITS_PER_WIDE_INT); SET_REAL_EXP (r, 2 * HOST_BITS_PER_WIDE_INT);
...@@ -1974,7 +1978,6 @@ real_from_integer (REAL_VALUE_TYPE *r, enum machine_mode mode, ...@@ -1974,7 +1978,6 @@ real_from_integer (REAL_VALUE_TYPE *r, enum machine_mode mode,
{ {
r->sig[SIGSZ-1] = high; r->sig[SIGSZ-1] = high;
r->sig[SIGSZ-2] = low; r->sig[SIGSZ-2] = low;
memset (r->sig, 0, sizeof(long)*(SIGSZ-2));
} }
else else
{ {
...@@ -1983,8 +1986,6 @@ real_from_integer (REAL_VALUE_TYPE *r, enum machine_mode mode, ...@@ -1983,8 +1986,6 @@ real_from_integer (REAL_VALUE_TYPE *r, enum machine_mode mode,
r->sig[SIGSZ-2] = high; r->sig[SIGSZ-2] = high;
r->sig[SIGSZ-3] = low >> (HOST_BITS_PER_LONG - 1) >> 1; r->sig[SIGSZ-3] = low >> (HOST_BITS_PER_LONG - 1) >> 1;
r->sig[SIGSZ-4] = low; r->sig[SIGSZ-4] = low;
if (SIGSZ > 4)
memset (r->sig, 0, sizeof(long)*(SIGSZ-4));
} }
normalize (r); normalize (r);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment