diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/real.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a25207869af..3ec6e47dcb8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-04-02 Andreas Schwab <schwab@suse.de> + + * real.c (decode_ieee_single): Fix decoding of SNaN bit. + 2003-04-01 Richard Henderson <rth@redhat.com> * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION diff --git a/gcc/real.c b/gcc/real.c index 74f430c29ae..c79dd288b62 100644 --- a/gcc/real.c +++ b/gcc/real.c @@ -2705,7 +2705,8 @@ decode_ieee_single (fmt, r, buf) { r->class = rvc_nan; r->sign = sign; - r->signalling = ((image >> 22) & 1) ^ fmt->qnan_msb_set; + r->signalling = (((image >> (HOST_BITS_PER_LONG - 2)) & 1) + ^ fmt->qnan_msb_set); r->sig[SIGSZ-1] = image; } else |