diff options
author | Alexander Kabaev <ak03@gte.com> | 2003-11-03 23:27:51 +0000 |
---|---|---|
committer | Loren J. Rittle <ljrittle@gcc.gnu.org> | 2003-11-03 23:27:51 +0000 |
commit | 930177d9f0ab0015f02f4961cda28ab63dfd468a (patch) | |
tree | 98e09797854d5581bcf2965e7d23896794a9f816 /gcc/real.c | |
parent | 2b2de389acb8931100bc24dd332acb3d85a048d0 (diff) | |
download | gcc-930177d9f0ab0015f02f4961cda28ab63dfd468a.zip gcc-930177d9f0ab0015f02f4961cda28ab63dfd468a.tar.gz gcc-930177d9f0ab0015f02f4961cda28ab63dfd468a.tar.bz2 |
* real.c (encode_ieee_single): Ensure proper promotion.
From-SVN: r73232
Diffstat (limited to 'gcc/real.c')
-rw-r--r-- | gcc/real.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -2536,9 +2536,10 @@ encode_ieee_single (const struct real_format *fmt, long *buf, const REAL_VALUE_TYPE *r) { unsigned long image, sig, exp; + unsigned long sign = r->sign; bool denormal = (r->sig[SIGSZ-1] & SIG_MSB) == 0; - image = r->sign << 31; + image = sign << 31; sig = (r->sig[SIGSZ-1] >> (HOST_BITS_PER_LONG - 24)) & 0x7fffff; switch (r->class) |