summaryrefslogtreecommitdiffstats
path: root/src/H5Tpkg.h
diff options
context:
space:
mode:
authorRaymond Lu <songyulu@hdfgroup.org>2009-08-20 18:40:50 (GMT)
committerRaymond Lu <songyulu@hdfgroup.org>2009-08-20 18:40:50 (GMT)
commit0b3b4351e7841f00cdcda837fc2960a37a923d69 (patch)
treeb2b34f09112d63444133446152742e321e895beb /src/H5Tpkg.h
parentf8c63dd9dcb4459dd8d57a2b2543e2e99f6d4a35 (diff)
downloadhdf5-0b3b4351e7841f00cdcda837fc2960a37a923d69.zip
hdf5-0b3b4351e7841f00cdcda837fc2960a37a923d69.tar.gz
hdf5-0b3b4351e7841f00cdcda837fc2960a37a923d69.tar.bz2
[svn-r17392] I added a detection for the correctness of converting from unsigned long to float in the
configure.in. The Pathscale compiler on Sandia's Linux machine misinterprets the values of unsigned long as negative during the conversion to float, when the first bit of unsigned long is on. Tested on jam. Need to test it on Sandia's machine.
Diffstat (limited to 'src/H5Tpkg.h')
-rw-r--r--src/H5Tpkg.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h
index 7ef4b63..18bf7cf 100644
--- a/src/H5Tpkg.h
+++ b/src/H5Tpkg.h
@@ -133,10 +133,18 @@
#define H5T_CONV_INTERNAL_INTEGER_LDOUBLE 1
#endif
-/* Define an internal macro for converting unsigned (long) long to floating numbers.
+/* Define an internal macro for converting unsigned long to float.
+ * Pathscale compiler on Sandia's Linux machine has some problem.
+ * 64-bit Solaris does different rounding. */
+#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FLOAT_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \
+ (!H5_WANT_DATA_ACCURACY)
+#define H5T_CONV_INTERNAL_ULONG_FLT 1
+#endif
+
+/* Define an internal macro for converting unsigned (long) long to double.
* 64-bit Solaris does different rounding. */
#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || (!H5_WANT_DATA_ACCURACY)
-#define H5T_CONV_INTERNAL_ULONG_FP 1
+#define H5T_CONV_INTERNAL_ULONG_DBL 1
#endif
/* Define an internal macro for converting unsigned long to long double. SGI compilers give some