Dear Corinna,

> L is of type Long == int32_t, aadj is of type double.  The value of aadj at 
> this time is 2529648000.0 == 0x96c75d80 which appears to be perfectly valid 
> for a 32 bit int.

2529648000 is a valid unsigned long, but not a valid signed long. The largest 
32 bit long is 2^31-1 = 2147483647. 0x96c75d80 interpreted as a signed long is 
a negative number.

I would say if floating point instructions are used to convert 2529648000 to a 
signed 32 bit integer, they should produce an FE_INVALID exception.
 
Best regards,

Michael
Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928

Reply via email to