From 27dd4e0f05c72c9ec3745965d525cc4637fc2e0a Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Wed, 25 Mar 2015 21:25:32 -0500 Subject: [svn-r26597] Description: Bring r26500 from autotools_rework branch to trunk: Remove the LLONG_TO_FP_CAST_WORKS macro/define, as it targets problems with the Visual Studio 6 compilers. Tested on: Linux/32 2.6.18 (jam) w/serial & parallel (Daily tested on branch for 2+ days) --- config/cmake/ConfigureChecks.cmake | 9 --------- config/cmake/H5pubconf.h.in | 3 --- configure | 27 --------------------------- configure.ac | 18 ------------------ src/H5Ztrans.c | 16 ++-------------- src/H5config.h.in | 3 --- test/dtransform.c | 13 ------------- 7 files changed, 2 insertions(+), 87 deletions(-) diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake index 2b68779..e8951c6 100644 --- a/config/cmake/ConfigureChecks.cmake +++ b/config/cmake/ConfigureChecks.cmake @@ -259,15 +259,6 @@ ENDMACRO (H5MiscConversionTest) #----------------------------------------------------------------------------- # ---------------------------------------------------------------------- -# Set the flag to indicate that the machine can _compile_ -# 'long long' to 'float' and 'double' typecasts. -# (This flag should be set for all machines.) -# -if (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$) - set (H5_LLONG_TO_FP_CAST_WORKS 1 CACHE INTERNAL "Checking IF compiling long long to floating-point typecasts work") - message (STATUS "Checking IF compiling long long to floating-point typecasts work... yes") -endif (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$) -# ---------------------------------------------------------------------- # Set the flag to indicate that the machine can convert from # 'unsigned long long' to 'long double' without precision loss. # (This flag should be set for all machines, except for FreeBSD(sleipnir) diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in index ea5df09..39b6a60 100644 --- a/config/cmake/H5pubconf.h.in +++ b/config/cmake/H5pubconf.h.in @@ -449,9 +449,6 @@ special algorithm. */ #cmakedefine H5_LDOUBLE_TO_LONG_SPECIAL @H5_LDOUBLE_TO_LONG_SPECIAL@ -/* Define if your system can compile long long to floating-point casts. */ -#cmakedefine H5_LLONG_TO_FP_CAST_WORKS @H5_LLONG_TO_FP_CAST_WORKS@ - /* Define if your system can convert (unsigned) long long to long double values correctly. */ #cmakedefine H5_LLONG_TO_LDOUBLE_CORRECT @H5_LLONG_TO_LDOUBLE_CORRECT@ diff --git a/configure b/configure index ea0100d..4d36297 100755 --- a/configure +++ b/configure @@ -28151,33 +28151,6 @@ $as_echo "no" >&6; } esac ## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can _compile_ -## 'long long' to 'float' and 'double' typecasts. -## (This flag should be set for all machines, except for under Windows when -## compiled with Visual Studio 6, where the macro value is set in the -## src/H5pubconf.h file) -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiling long long to floating-point typecasts work" >&5 -$as_echo_n "checking if compiling long long to floating-point typecasts work... " >&6; } -if ${hdf5_cv_llong_to_fp_cast_works+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_llong_to_fp_cast_works=yes -fi - - -if test ${hdf5_cv_llong_to_fp_cast_works} = "yes"; then - -$as_echo "#define LLONG_TO_FP_CAST_WORKS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ---------------------------------------------------------------------- ## Set the flag to indicate that the machine can convert from ## 'unsigned long long' to 'long double' without precision loss. ## (This flag should be set for all machines, except for FreeBSD(sleipnir) diff --git a/configure.ac b/configure.ac index 3c9842c..eae1b9c 100644 --- a/configure.ac +++ b/configure.ac @@ -2575,24 +2575,6 @@ case "`uname`" in esac ## ---------------------------------------------------------------------- -## Set the flag to indicate that the machine can _compile_ -## 'long long' to 'float' and 'double' typecasts. -## (This flag should be set for all machines, except for under Windows when -## compiled with Visual Studio 6, where the macro value is set in the -## src/H5pubconf.h file) -## -AC_MSG_CHECKING([if compiling long long to floating-point typecasts work]) -AC_CACHE_VAL([hdf5_cv_llong_to_fp_cast_works], [hdf5_cv_llong_to_fp_cast_works=yes]) - -if test ${hdf5_cv_llong_to_fp_cast_works} = "yes"; then - AC_DEFINE([LLONG_TO_FP_CAST_WORKS], [1], - [Define if your system can compile long long to floating-point casts.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ---------------------------------------------------------------------- ## Set the flag to indicate that the machine can convert from ## 'unsigned long long' to 'long double' without precision loss. ## (This flag should be set for all machines, except for FreeBSD(sleipnir) diff --git a/src/H5Ztrans.c b/src/H5Ztrans.c index 7d46d70..7a94487 100644 --- a/src/H5Ztrans.c +++ b/src/H5Ztrans.c @@ -160,18 +160,6 @@ static void H5Z_print(H5Z_node *tree, FILE *stream); HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Unexpected type conversion operation") \ } -/* Windows Intel 8.1 compiler has error converting long long to double. - * Hard code it in. - */ -#ifndef H5_LLONG_TO_FP_CAST_WORKS -#define H5Z_XFORM_LL_DO_OP1(RESL,RESR,TYPE,OP,SIZE) \ -{ \ - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Cannot convert from long long to double: required for data transform") \ -} -#else -#define H5Z_XFORM_LL_DO_OP1(RESL,RESR,TYPE,OP,SIZE) \ - H5Z_XFORM_DO_OP1(RESL,RESR,TYPE,OP,SIZE) -#endif #if H5_SIZEOF_LONG_DOUBLE !=0 #define H5Z_XFORM_TYPE_OP(RESL,RESR,TYPE,OP,SIZE) \ { \ @@ -194,7 +182,7 @@ static void H5Z_print(H5Z_node *tree, FILE *stream); else if((TYPE) == H5T_NATIVE_ULONG) \ H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_LLONG) \ - H5Z_XFORM_LL_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \ + H5Z_XFORM_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_ULLONG) \ H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_FLOAT) \ @@ -226,7 +214,7 @@ static void H5Z_print(H5Z_node *tree, FILE *stream); else if((TYPE) == H5T_NATIVE_ULONG) \ H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_LLONG) \ - H5Z_XFORM_LL_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \ + H5Z_XFORM_DO_OP1((RESL), (RESR), long long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_ULLONG) \ H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \ else if((TYPE) == H5T_NATIVE_FLOAT) \ diff --git a/src/H5config.h.in b/src/H5config.h.in index 2ab7837..4baab7e 100644 --- a/src/H5config.h.in +++ b/src/H5config.h.in @@ -382,9 +382,6 @@ special algorithm. */ #undef LDOUBLE_TO_LONG_SPECIAL -/* Define if your system can compile long long to floating-point casts. */ -#undef LLONG_TO_FP_CAST_WORKS - /* Define if your system can convert (unsigned) long long to long double values correctly. */ #undef LLONG_TO_LDOUBLE_CORRECT diff --git a/test/dtransform.c b/test/dtransform.c index 520055d..4adbaf5 100644 --- a/test/dtransform.c +++ b/test/dtransform.c @@ -297,14 +297,7 @@ int main(void) TEST_TYPE_CONTIG(dxpl_id_utrans_inv, unsigned int, H5T_NATIVE_UINT, "uint", transformData, 0); TEST_TYPE_CONTIG(dxpl_id_c_to_f, long, H5T_NATIVE_LONG, "long", windchillFfloat, 1); TEST_TYPE_CONTIG(dxpl_id_utrans_inv, unsigned long, H5T_NATIVE_ULONG, "ulong", transformData, 0); - -#ifdef H5_LLONG_TO_FP_CAST_WORKS TEST_TYPE_CONTIG(dxpl_id_c_to_f, long long, H5T_NATIVE_LLONG, "llong", windchillFfloat, 1); -#else - TESTING("contiguous, with type conversion (float->llong)") - SKIPPED() -#endif - TEST_TYPE_CONTIG(dxpl_id_utrans_inv, unsigned long long, H5T_NATIVE_ULLONG, "ullong", transformData, 0); TEST_TYPE_CONTIG(dxpl_id_c_to_f, float, H5T_NATIVE_FLOAT, "float", windchillFfloat, 1); TEST_TYPE_CONTIG(dxpl_id_c_to_f, double, H5T_NATIVE_DOUBLE, "double", windchillFfloat, 1); @@ -321,13 +314,7 @@ int main(void) TEST_TYPE_CHUNK(dxpl_id_utrans_inv, unsigned int, H5T_NATIVE_UINT, "uint", transformData, 0); TEST_TYPE_CHUNK(dxpl_id_c_to_f, long, H5T_NATIVE_LONG, "long", windchillFfloat, 1); TEST_TYPE_CHUNK(dxpl_id_utrans_inv, unsigned long, H5T_NATIVE_ULONG, "ulong", transformData, 0); -#ifdef H5_LLONG_TO_FP_CAST_WORKS TEST_TYPE_CHUNK(dxpl_id_c_to_f, long long, H5T_NATIVE_LLONG, "llong", windchillFfloat, 1); -#else - TESTING("chunked, with type conversion (float->llong)") - SKIPPED() -#endif - TEST_TYPE_CHUNK(dxpl_id_utrans_inv, unsigned long long, H5T_NATIVE_ULLONG, "ullong", transformData, 0); TEST_TYPE_CHUNK(dxpl_id_c_to_f, float, H5T_NATIVE_FLOAT, "float", windchillFfloat, 1); TEST_TYPE_CHUNK(dxpl_id_c_to_f, double, H5T_NATIVE_DOUBLE, "double", windchillFfloat, 1); -- cgit v0.12