This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Test tstdiomisc fails when multiplication of NAN by -1 results in NAN


On Sun, May 23, 2010 at 12:37 PM, John David Anglin
<dave@hiauly1.hia.nrc.ca> wrote:
> Carlos,
>
> You have found a bug. ?The code should xor the sign bit when doing
> negation. ?The existing code doesn't work for NANs. ?I'll try to
> fix negdf2 and negsf2.

Should I file a bug?

>> Then it loads something which I assume *should* be -1, but isn't:
>>
>> .LC2:
>> ? ? ? ? .word ? -1074790400
>> ? ? ? ? .word ? 0
>>
>> What is this value, it's 0xbff0000000000000 e.g. -1.875. Should it be
>> 0xbf80000000000000 e.g. -1.0 exactly, but it's not? Is this a mistake?
>
> I believe 0xbff0000000000000 is the correct double representation
> for -1.0. ?0xbf800000 is the float representation for -1.0.

You are correct, I've checked for 64-bit, and this is correct. I was
accidentally using the 32-bit float formats.

However, there is a bug in gdb then, which shows the NaN value as a
32-bit value and interprets only the top 32-bits of the 64-bit double
-1.0 and displays -1.875 as if it were a 32-bit float.

Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]