From 707965be8a3152fa8bbbbef81083e4c967586d7d Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Fri, 20 Feb 2015 14:19:15 -0500 Subject: [svn-r26257] Description: Remove the LDOUBLE_TO_INTEGER_ACCURATE macro, since it was added to work around non-standard behavior on SGI IRIX, which we are no longer supporting. Tested on: Mac OSX/64 10.10.2 (amazon) w/serial (h5committest not required on this branch) --- config/cmake/ConfigureChecks.cmake | 8 -------- config/cmake/H5pubconf.h.in | 3 --- configure.ac | 23 ----------------------- src/H5Tpkg.h | 8 ++++---- test/dt_arith.c | 6 +++--- 5 files changed, 7 insertions(+), 41 deletions(-) diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake index a709a4d..6b762d0 100644 --- a/config/cmake/ConfigureChecks.cmake +++ b/config/cmake/ConfigureChecks.cmake @@ -259,14 +259,6 @@ ENDMACRO (H5MiscConversionTest) #----------------------------------------------------------------------------- # ----------------------------------------------------------------------- -# Set flag to indicate that the machine can handle conversion from -# long double to integers accurately. This flag should be set "yes" for -# all machines except all SGIs. For SGIs, some conversions are -# incorrect and its cache value is set "no" in its config/irix6.x and -# irix5.x. -# -H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_LDOUBLE_TO_INTEGER_ACCURATE "checking IF converting from long double to integers is accurate") -# ----------------------------------------------------------------------- # Set flag to indicate that the machine can do conversion from # long double to integers regardless of accuracy. This flag should be # set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in index ff05373..201b661 100644 --- a/config/cmake/H5pubconf.h.in +++ b/config/cmake/H5pubconf.h.in @@ -460,9 +460,6 @@ values. */ #cmakedefine H5_INTEGER_TO_LDOUBLE_ACCURATE @H5_INTEGER_TO_LDOUBLE_ACCURATE@ -/* Define if your system can convert long double to integers accurately. */ -#cmakedefine H5_LDOUBLE_TO_INTEGER_ACCURATE @H5_LDOUBLE_TO_INTEGER_ACCURATE@ - /* Define if your system can convert from long double to integer values. */ #cmakedefine H5_LDOUBLE_TO_INTEGER_WORKS @H5_LDOUBLE_TO_INTEGER_WORKS@ diff --git a/configure.ac b/configure.ac index 426ca2f..67e357c 100644 --- a/configure.ac +++ b/configure.ac @@ -2575,29 +2575,6 @@ case "`uname`" in esac ## ----------------------------------------------------------------------- -## Set flag to indicate that the machine can handle conversion from -## long double to integers accurately. This flag should be set "yes" for -## all machines except all SGIs. For SGIs, some conversions are -## incorrect and its cache value is set "no" in its config/irix6.x and -## irix5.x. -## -AC_MSG_CHECKING([if converting from long double to integers is accurate]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_integer_accurate=${hdf5_cv_ldouble_to_integer_accurate=no} -else - AC_CACHE_VAL([hdf5_cv_ldouble_to_integer_accurate], [hdf5_cv_ldouble_to_integer_accurate=yes]) -fi - -if test "${hdf5_cv_ldouble_to_integer_accurate}" = "yes"; then - AC_DEFINE([LDOUBLE_TO_INTEGER_ACCURATE], [1], - [Define if your system can convert long double to integers accurately.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ----------------------------------------------------------------------- ## Set flag to indicate that the machine can do conversion from ## long double to integers regardless of accuracy. This flag should be ## set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h index bd37829..39791e0 100644 --- a/src/H5Tpkg.h +++ b/src/H5Tpkg.h @@ -179,7 +179,7 @@ /* Define an internal macro for converting long double to all integers. SGI compilers give some incorrect * conversions. HP-UX 11.00 compiler generates floating exception. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS) || \ +#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) || \ (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) #define H5T_CONV_INTERNAL_LDOUBLE_INTEGER 1 #endif @@ -187,7 +187,7 @@ /* Define an internal macro for converting long double to unsigned int. SGI compilers give some incorrect * conversions. HP-UX 11.00 compiler generates floating exception. Some Intel compilers on some Linux * give incorrect values. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_UINT_ACCURATE && \ +#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_UINT_ACCURATE && \ H5_LDOUBLE_TO_INTEGER_WORKS) || (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) #define H5T_CONV_INTERNAL_LDOUBLE_UINT 1 #endif @@ -201,7 +201,7 @@ /* Define an internal macro for converting long double to long long. SGI compilers give some incorrect * conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates floating exception. * The hard conversion on Windows .NET 2003 has a bug and gives wrong exception value. */ -#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_ACCURATE && \ +#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && \ H5_LDOUBLE_TO_INTEGER_WORKS && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \ (!H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_WORKS) #define H5T_CONV_INTERNAL_LDOUBLE_LLONG 1 @@ -220,7 +220,7 @@ /* Define an internal macro for converting long double to unsigned long long. SGI compilers give some * incorrect conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates * floating exception. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS && \ +#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS && \ H5_FP_TO_ULLONG_ACCURATE && defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM) && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \ (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) #define H5T_CONV_INTERNAL_LDOUBLE_ULLONG 1 diff --git a/test/dt_arith.c b/test/dt_arith.c index a93d1b8..0c36cd6 100644 --- a/test/dt_arith.c +++ b/test/dt_arith.c @@ -5309,7 +5309,7 @@ run_fp_int_conv(const char *name) #endif /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM*/ #endif -#if H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE +#if H5_LDOUBLE_TO_INTEGER_WORKS #if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_SCHAR); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_UCHAR); @@ -5391,7 +5391,7 @@ run_fp_int_conv(const char *name) #endif /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM && H5_LDOUBLE_TO_LLONG_ACCURATE*/ #endif #endif -#else /*H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE*/ +#else /*H5_LDOUBLE_TO_INTEGER_WORKS*/ { char str[256]; /*hello string */ @@ -5405,7 +5405,7 @@ run_fp_int_conv(const char *name) HDputs(" Test skipped due to disabled long double."); #endif } -#endif /*H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE*/ +#endif /*H5_LDOUBLE_TO_INTEGER_WORKS */ #ifndef H5_VMS } /* end for */ #endif /* H5_VMS */ -- cgit v0.12