Hi,
testing 1.8.11 on the new cygwin64 platform with
$ gcc --version
gcc (GCC) 4.8.0
Copyright (C) 2013 Free Software Foundation, Inc.
I have alot of long double conversion,
but the output is a bit strange:
---------------------------------------------------------------------
Testing hard signed char -> long double conversions *FAILED*
elmt 0:
src = 01 1
dst = ff 80 7f 40 3f 20 3f ff 80 00 00 00 00 00 00 00
1.000000
ans = 00 00 00 00 00 00 3f ff 80 00 00 00 00 00 00 00
1.000000
[cut]
elmt 87:
src = 00 00 0f ff ff ff ff ff 17592186044415
dst = ff ff 80 00 00 00 40 2a ff ff ff ff ff f0 00 00
17592186044415.000000
ans = 00 00 00 00 00 00 40 2a ff ff ff ff ff f0 00 00
17592186044415.000000
maximum failures reached, aborting test...
(dst is library's conversion output. ans is compiler's conversion
output.)
----------------------------------------------------------------------
But in theory this case is handled by
-------------------------------- dt_arith.c ----------------------
/* Make certain that there isn't some weird number of
destination bits */
assert(dst_nbits%8==0);
/* For Intel machines, the size of "long double" is 12 bytes,
precision
* is 80 bits; for AMD processors, the size of "long double" is
16 bytes,
* precision is 80 bits. During hardware conversion, the last
few unused
* bytes may have garbage in them. Clean them out with 0s
before compare
* the values.
*/
#if H5_SIZEOF_LONG_DOUBLE !=0
if(dendian==H5T_ORDER_LE && dst_type==FLT_LDOUBLE) {
unsigned int q;
for(q=dst_nbits/8; q<dst_size; q++) {
buf[j*dst_size+q] = 0x00;
}
}
--------------------------------------------------------------------
any one seeing the same issue on other 64bit platform ?
Regards
Marco
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org