summaryrefslogtreecommitdiff
path: root/gcc/real.c
diff options
context:
space:
mode:
authorljrittle <ljrittle@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-03 23:27:51 +0000
committerljrittle <ljrittle@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-03 23:27:51 +0000
commit1676fbf44f4da4c2b0ea481aa8d18ff45888d489 (patch)
tree98e09797854d5581bcf2965e7d23896794a9f816 /gcc/real.c
parent8e04d21120986713672b2a645a5c5691fe89aa09 (diff)
downloadgcc-1676fbf44f4da4c2b0ea481aa8d18ff45888d489.tar.gz
* real.c (encode_ieee_single): Ensure proper promotion.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73232 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/real.c')
-rw-r--r--gcc/real.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/real.c b/gcc/real.c
index 87246807f2f..f7af346db60 100644
--- a/gcc/real.c
+++ b/gcc/real.c
@@ -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)