summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Lu <songyulu@hdfgroup.org>2005-09-12 19:39:16 (GMT)
committerRaymond Lu <songyulu@hdfgroup.org>2005-09-12 19:39:16 (GMT)
commit93e661f16ba03b2acca208fb16518e6ce26e86d8 (patch)
tree65d81102c018e950c8bf30ba07186d10ed4e8b32
parentc78c580f5cb64abd8bf33331f11ef666382741cb (diff)
downloadhdf5-93e661f16ba03b2acca208fb16518e6ce26e86d8.zip
hdf5-93e661f16ba03b2acca208fb16518e6ce26e86d8.tar.gz
hdf5-93e661f16ba03b2acca208fb16518e6ce26e86d8.tar.bz2
[svn-r11395] Purpose: Bug fix
Description: Quincey added the condition branch (else if (*((ST*)S) != (ST)((DT)(*((ST*)S))))) in the definition of the macro H5T_CONV_Fx_CORE. It handles a special situation when the source is "float" and assigned the value of "INT_MAX". Compilers do roundup making this value "INT_MAX+1". This branch is to check that situation and return exception for some compilers, mainly GCC. The branch if (*((ST*)S) > (DT)(D_MAX) || (S_PREC < D_PREC && *((ST*)S) == (DT)(D_MAX))) is for some compilers like Sun, HP, IBM, and SGI where under the same situation the "int" doesn't overflow. A test was added to dt_arith.c to check 2 conversions, from float to int where the float is INT_MAX, and from double to signed char where the double is SCHAR_MAX. Platforms tested: h5committest and fuss.
-rw-r--r--src/H5Tconv.c473
-rw-r--r--test/dt_arith.c226
2 files changed, 461 insertions, 238 deletions
diff --git a/src/H5Tconv.c b/src/H5Tconv.c
index 7d77914..9a78adc 100644
--- a/src/H5Tconv.c
+++ b/src/H5Tconv.c
@@ -18,7 +18,6 @@
#define H5T_PACKAGE /*suppress error about including H5Tpkg */
-
#include "H5private.h" /*generic functions */
#include "H5Eprivate.h" /*error handling */
#include "H5FLprivate.h" /*Free Lists */
@@ -184,10 +183,10 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
* destination.
*
*/
-#define H5T_CONV_xX_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_xX_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_xX_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_xX_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
*((DT*)D) = (DT)(*((ST*)S)); \
}
@@ -198,7 +197,7 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
* equal. In this case, do not return exception but make sure the maximum is assigned
* to the destination. SLU - 2005/06/29
*/
-#define H5T_CONV_Xx_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Xx_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
if (*((ST*)S) > (DT)(D_MAX)) { \
H5T_conv_ret_t except_ret = (cb_struct.func)(H5T_CONV_EXCEPT_RANGE_HI, \
src_id, dst_id, S, D, cb_struct.user_data); \
@@ -220,7 +219,7 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
} else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_Xx_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Xx_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
if (*((ST*)S) > (DT)(D_MAX)) { \
*((DT*)D) = (D_MAX); \
} else if (*((ST*)S) < (DT)(D_MIN)) { \
@@ -229,7 +228,7 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_Ux_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Ux_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
if (*((ST*)S) > (DT)(D_MAX)) { \
H5T_conv_ret_t except_ret = (cb_struct.func)(H5T_CONV_EXCEPT_RANGE_HI, \
src_id, dst_id, S, D, cb_struct.user_data); \
@@ -242,19 +241,19 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
} else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_Ux_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Ux_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
if (*((ST*)S) > (DT)(D_MAX)) { \
*((DT*)D) = (D_MAX); \
} else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_sS(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_sS(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
assert(sizeof(ST)<=sizeof(DT)); \
- H5T_CONV(H5T_CONV_xX, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+ H5T_CONV(H5T_CONV_xX, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
-#define H5T_CONV_sU_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_sU_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
if (*((ST*)S) < 0) { \
H5T_conv_ret_t except_ret = (cb_struct.func)(H5T_CONV_EXCEPT_RANGE_LOW, \
src_id, dst_id, S, D, cb_struct.user_data); \
@@ -267,19 +266,19 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
} else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_sU_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_sU_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
if (*((ST*)S) < 0) { \
*((DT*)D) = 0; \
} else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_sU(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_sU(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
assert(sizeof(ST)<=sizeof(DT)); \
- H5T_CONV(H5T_CONV_sU, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+ H5T_CONV(H5T_CONV_sU, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
-#define H5T_CONV_uS_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_uS_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
if (sizeof(ST)==sizeof(DT) && *((ST*)S) > (D_MAX)) { \
H5T_conv_ret_t except_ret = (cb_struct.func)(H5T_CONV_EXCEPT_RANGE_HI, \
src_id, dst_id, S, D, cb_struct.user_data); \
@@ -292,29 +291,29 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
} else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_uS_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_uS_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
if (sizeof(ST)==sizeof(DT) && *((ST*)S) > (D_MAX)) { \
*((DT*)D) = (D_MAX); \
} else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_uS(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_uS(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
assert(sizeof(ST)<=sizeof(DT)); \
- H5T_CONV(H5T_CONV_uS, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+ H5T_CONV(H5T_CONV_uS, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
-#define H5T_CONV_uU(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_uU(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
assert(sizeof(ST)<=sizeof(DT)); \
- H5T_CONV(H5T_CONV_xX, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+ H5T_CONV(H5T_CONV_xX, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
-#define H5T_CONV_Ss(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Ss(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
assert(sizeof(ST)>=sizeof(DT)); \
- H5T_CONV(H5T_CONV_Xx, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+ H5T_CONV(H5T_CONV_Xx, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
-#define H5T_CONV_Su_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Su_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
if (*((ST*)S) < 0) { \
H5T_conv_ret_t except_ret = (cb_struct.func)(H5T_CONV_EXCEPT_RANGE_LOW, \
src_id, dst_id, S, D, cb_struct.user_data); \
@@ -336,7 +335,7 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
} else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_Su_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Su_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
if (*((ST*)S) < 0) { \
*((DT*)D) = 0; \
} else if (sizeof(ST)>sizeof(DT) && *((ST*)S) > (DT)(D_MAX)) { \
@@ -345,22 +344,22 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_Su(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Su(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
assert(sizeof(ST)>=sizeof(DT)); \
- H5T_CONV(H5T_CONV_Su, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+ H5T_CONV(H5T_CONV_Su, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
-#define H5T_CONV_Us(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Us(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
assert(sizeof(ST)>=sizeof(DT)); \
- H5T_CONV(H5T_CONV_Ux, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+ H5T_CONV(H5T_CONV_Ux, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
-#define H5T_CONV_Uu(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Uu(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
assert(sizeof(ST)>=sizeof(DT)); \
- H5T_CONV(H5T_CONV_Ux, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+ H5T_CONV(H5T_CONV_Ux, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
-#define H5T_CONV_su_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_su_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
/* Assumes memory format of unsigned & signed integers is same */ \
if (*((ST*)S) < 0) { \
H5T_conv_ret_t except_ret = (cb_struct.func)(H5T_CONV_EXCEPT_RANGE_LOW, \
@@ -374,7 +373,7 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
} else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_su_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_su_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
/* Assumes memory format of unsigned & signed integers is same */ \
if (*((ST*)S) < 0) { \
*((DT*)D) = 0; \
@@ -382,12 +381,12 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_su(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_su(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
assert(sizeof(ST)==sizeof(DT)); \
- H5T_CONV(H5T_CONV_su, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+ H5T_CONV(H5T_CONV_su, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
-#define H5T_CONV_us_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_us_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
/* Assumes memory format of unsigned & signed integers is same */ \
if (*((ST*)S) > (DT)(D_MAX)) { \
H5T_conv_ret_t except_ret = (cb_struct.func)(H5T_CONV_EXCEPT_RANGE_HI, \
@@ -401,7 +400,7 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
} else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_us_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_us_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
/* Assumes memory format of unsigned & signed integers is same */ \
if (*((ST*)S) > (DT)(D_MAX)) { \
*((DT*)D) = (D_MAX); \
@@ -409,20 +408,20 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_us(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_us(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
assert(sizeof(ST)==sizeof(DT)); \
- H5T_CONV(H5T_CONV_us, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+ H5T_CONV(H5T_CONV_us, long_long, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
-#define H5T_CONV_fF(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_fF(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
assert(sizeof(ST)<=sizeof(DT)); \
- H5T_CONV(H5T_CONV_xX, long double, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+ H5T_CONV(H5T_CONV_xX, long double, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
/* Same as H5T_CONV_Xx_CORE, except that instead of using D_MAX and D_MIN
* when an overflow occurs, use the 'float' infinity values.
*/
-#define H5T_CONV_Ff_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Ff_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
if (*((ST*)S) > (DT)(D_MAX)) { \
H5T_conv_ret_t except_ret = (cb_struct.func)(H5T_CONV_EXCEPT_RANGE_HI, \
src_id, dst_id, S, D, cb_struct.user_data); \
@@ -444,7 +443,7 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
} else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_Ff_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Ff_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
if (*((ST*)S) > (DT)(D_MAX)) { \
*((DT*)D) = (H5T_NATIVE_FLOAT_POS_INF_g); \
} else if (*((ST*)S) < (DT)(D_MIN)) { \
@@ -453,9 +452,9 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_Ff(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_Ff(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
assert(sizeof(ST)>=sizeof(DT)); \
- H5T_CONV(H5T_CONV_Ff, long double, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+ H5T_CONV(H5T_CONV_Ff, long double, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
#define H5T_HI_LO_BIT_SET(TYP, V, LO, HI) { \
@@ -517,8 +516,8 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
LO = count; \
}
-#define H5T_CONV_xF_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
- if ((sizeof(ST) * 8) > D_PREC) { \
+#define H5T_CONV_xF_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
+ if (S_PREC > D_PREC) { \
unsigned low_bit_pos, high_bit_pos; \
\
/* Detect high & low bits set in source */ \
@@ -541,26 +540,24 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_xF_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV_xF_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_xF(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
- H5T_CONV(H5T_CONV_xF, long double, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+#define H5T_CONV_xF(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
+ H5T_CONV(H5T_CONV_xF, long double, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
-/* Added a condition branch(else if (*((ST*)S) == (DT)(D_MAX))) which seems redundant.
+/* Quincey added the condition branch (else if (*((ST*)S) != (ST)((DT)(*((ST*)S))))).
* It handles a special situation when the source is "float" and assigned the value
- * of "INT_MAX". A compiler may do roundup making this value "INT_MAX+1". However,
- * when do comparison "if (*((ST*)S) > (DT)(D_MAX))", the compiler may consider them
- * equal. In this case, do not return exception but make sure the maximum is assigned
- * to the destination. SLU - 2005/06/29
- *
- * Modified Ray's change to just check for the source >= the DT_MAX, so that
- * the exception handling routine gets called. QAK - 2005/08/08
- */
-#define H5T_CONV_Fx_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
- if (*((ST*)S) >= (DT)(D_MAX)) { \
+ * of "INT_MAX". Compilers do roundup making this value "INT_MAX+1". This branch
+ * is to check that situation and return exception for some compilers, mainly GCC.
+ * The branch if (*((ST*)S) > (DT)(D_MAX) || (S_PREC < D_PREC && *((ST*)S) ==
+ * (DT)(D_MAX))) is for some compilers like Sun, HP, IBM, and SGI where under
+ * the same situation the "int" doesn't overflow. SLU - 2005/9/12
+ */
+#define H5T_CONV_Fx_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
+ if (*((ST*)S) > (DT)(D_MAX) || (S_PREC < D_PREC && *((ST*)S) == (DT)(D_MAX))) { \
H5T_conv_ret_t except_ret = (cb_struct.func)(H5T_CONV_EXCEPT_RANGE_HI, \
src_id, dst_id, S, D, cb_struct.user_data); \
if(except_ret == H5T_CONV_UNHANDLED) \
@@ -591,8 +588,8 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
else \
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_Fx_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,D_PREC) { \
- if (*((ST*)S) >= (DT)(D_MAX)) { \
+#define H5T_CONV_Fx_NOEX_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
+ if (*((ST*)S) > (DT)(D_MAX)) { \
*((DT*)D) = (D_MAX); \
} else if (*((ST*)S) < (DT)(D_MIN)) { \
*((DT*)D) = (D_MIN); \
@@ -601,20 +598,20 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
*((DT*)D) = (DT)(*((ST*)S)); \
}
-#define H5T_CONV_Fx(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
- H5T_CONV(H5T_CONV_Fx, long double, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, D_PREC) \
+#define H5T_CONV_Fx(STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
+ H5T_CONV(H5T_CONV_Fx, long double, STYPE, DTYPE, ST, DT, D_MIN, D_MAX, S_PREC, D_PREC) \
}
/* Since all "no exception" cores do the same thing (assign the value in the
* source location to the destination location, using casting), use one "core"
* to do them all.
*/
-#define H5T_CONV_NO_EXCEPT_CORE(S,D,ST,DT,D_MIN,D_MAX, D_PREC) { \
+#define H5T_CONV_NO_EXCEPT_CORE(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
*((DT*)D) = (DT)(*((ST*)S)); \
}
/* The main part of every integer hardware conversion macro */
-#define H5T_CONV(GUTS,ATYPE,STYPE,DTYPE,ST,DT,D_MIN,D_MAX,D_PREC) { \
+#define H5T_CONV(GUTS,ATYPE,STYPE,DTYPE,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) { \
size_t elmtno; /*element number */ \
uint8_t *src, *s; /*source buffer */ \
uint8_t *dst, *d; /*destination buffer */ \
@@ -712,17 +709,17 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
if (s_mv && d_mv) { \
/* Alignment is required for both source and dest */ \
s = (uint8_t*)&aligned; \
- H5T_CONV_LOOP_OUTER(PRE_SALIGN,PRE_DALIGN,POST_SALIGN,POST_DALIGN,GUTS,s,d,ST,DT,D_MIN,D_MAX,D_PREC) \
+ H5T_CONV_LOOP_OUTER(PRE_SALIGN,PRE_DALIGN,POST_SALIGN,POST_DALIGN,GUTS,s,d,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) \
} else if(s_mv) { \
/* Alignment is required only for source */ \
s = (uint8_t*)&aligned; \
- H5T_CONV_LOOP_OUTER(PRE_SALIGN,PRE_DNOALIGN,POST_SALIGN,POST_DNOALIGN,GUTS,s,dst,ST,DT,D_MIN,D_MAX,D_PREC) \
+ H5T_CONV_LOOP_OUTER(PRE_SALIGN,PRE_DNOALIGN,POST_SALIGN,POST_DNOALIGN,GUTS,s,dst,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) \
} else if(d_mv) { \
/* Alignment is required only for destination */ \
- H5T_CONV_LOOP_OUTER(PRE_SNOALIGN,PRE_DALIGN,POST_SNOALIGN,POST_DALIGN,GUTS,src,d,ST,DT,D_MIN,D_MAX,D_PREC) \
+ H5T_CONV_LOOP_OUTER(PRE_SNOALIGN,PRE_DALIGN,POST_SNOALIGN,POST_DALIGN,GUTS,src,d,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) \
} else { \
/* Alignment is not required for both source and destination */ \
- H5T_CONV_LOOP_OUTER(PRE_SNOALIGN,PRE_DNOALIGN,POST_SNOALIGN,POST_DNOALIGN,GUTS,src,dst,ST,DT,D_MIN,D_MAX,D_PREC) \
+ H5T_CONV_LOOP_OUTER(PRE_SNOALIGN,PRE_DNOALIGN,POST_SNOALIGN,POST_DNOALIGN,GUTS,src,dst,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) \
} \
\
/* Decrement number of elements left to convert */ \
@@ -772,16 +769,16 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
}
/* The outer wrapper for the type conversion loop, to check for an exception handling routine */
-#define H5T_CONV_LOOP_OUTER(PRE_SALIGN_GUTS,PRE_DALIGN_GUTS,POST_SALIGN_GUTS,POST_DALIGN_GUTS,GUTS,S,D,ST,DT,D_MIN,D_MAX,D_PREC) \
+#define H5T_CONV_LOOP_OUTER(PRE_SALIGN_GUTS,PRE_DALIGN_GUTS,POST_SALIGN_GUTS,POST_DALIGN_GUTS,GUTS,S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) \
if(cb_struct.func) { \
- H5T_CONV_LOOP(PRE_SALIGN_GUTS,PRE_DALIGN_GUTS,POST_SALIGN_GUTS,POST_DALIGN_GUTS,GUTS,S,D,ST,DT,D_MIN,D_MAX,D_PREC) \
+ H5T_CONV_LOOP(PRE_SALIGN_GUTS,PRE_DALIGN_GUTS,POST_SALIGN_GUTS,POST_DALIGN_GUTS,GUTS,S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) \
} \
else { \
- H5T_CONV_LOOP(PRE_SALIGN_GUTS,PRE_DALIGN_GUTS,POST_SALIGN_GUTS,POST_DALIGN_GUTS,H5_GLUE(GUTS,_NOEX),S,D,ST,DT,D_MIN,D_MAX,D_PREC) \
+ H5T_CONV_LOOP(PRE_SALIGN_GUTS,PRE_DALIGN_GUTS,POST_SALIGN_GUTS,POST_DALIGN_GUTS,H5_GLUE(GUTS,_NOEX),S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) \
}
/* The inner loop of the type conversion macro, actually converting the elements */
-#define H5T_CONV_LOOP(PRE_SALIGN_GUTS,PRE_DALIGN_GUTS,POST_SALIGN_GUTS,POST_DALIGN_GUTS,GUTS,S,D,ST,DT,D_MIN,D_MAX,D_PREC) \
+#define H5T_CONV_LOOP(PRE_SALIGN_GUTS,PRE_DALIGN_GUTS,POST_SALIGN_GUTS,POST_DALIGN_GUTS,GUTS,S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) \
for (elmtno=0; elmtno<safe; elmtno++) { \
/* Handle source pre-alignment */ \
H5_GLUE(H5T_CONV_LOOP_,PRE_SALIGN_GUTS)(ST) \
@@ -790,7 +787,7 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
H5_GLUE(H5T_CONV_LOOP_,PRE_DALIGN_GUTS)(DT) \
\
/* ... user-defined stuff here -- the conversion ... */ \
- H5T_CONV_LOOP_GUTS(GUTS,S,D,ST,DT,D_MIN,D_MAX,D_PREC) \
+ H5T_CONV_LOOP_GUTS(GUTS,S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) \
\
/* Handle source post-alignment */ \
H5_GLUE(H5T_CONV_LOOP_,POST_SALIGN_GUTS)(ST) \
@@ -805,12 +802,12 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
/* Macro to call the actual "guts" of the type conversion, or call the "no exception" guts */
#ifdef H5_WANT_DCONV_EXCEPTION
-#define H5T_CONV_LOOP_GUTS(GUTS,S,D,ST,DT,D_MIN,D_MAX,D_PREC) \
+#define H5T_CONV_LOOP_GUTS(GUTS,S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) \
/* ... user-defined stuff here -- the conversion ... */ \
- H5_GLUE(GUTS,_CORE)(S,D,ST,DT,D_MIN,D_MAX,D_PREC)
+ H5_GLUE(GUTS,_CORE)(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC)
#else /* H5_WANT_DCONV_EXCEPTION */
-#define H5T_CONV_LOOP_GUTS(GUTS,S,D,ST,DT,D_MIN,D_MAX,D_PREC) \
- H5_GLUE(H5T_CONV_NO_EXCEPT,_CORE)(S,D,ST,DT,D_MIN,D_MAX,D_PREC)
+#define H5T_CONV_LOOP_GUTS(GUTS,S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC) \
+ H5_GLUE(H5T_CONV_NO_EXCEPT,_CORE)(S,D,ST,DT,D_MIN,D_MAX,S_PREC,D_PREC)
#endif /* H5_WANT_DCONV_EXCEPTION */
@@ -818,16 +815,16 @@ H5FL_BLK_DEFINE_STATIC(array_seq);
/* Print alignment statistics */
# define CI_PRINT_STATS(STYPE,DTYPE) { \
- if (H5DEBUG(T) && ((H5T_conv_hw_t *)cdata->priv)->s_aligned) { \
+ if (H5DEBUG(T) && ((H5T_conv_hw_t *)cdata->priv)->s_aligned) { \
HDfprintf(H5DEBUG(T), \
" %Hu src elements aligned on %lu-byte boundaries\n", \
- ((H5T_conv_hw_t *)cdata->priv)->s_aligned, \
+ ((H5T_conv_hw_t *)cdata->priv)->s_aligned, \
(unsigned long)H5T_NATIVE_##STYPE##_ALIGN_g); \
} \
- if (H5DEBUG(T) && ((H5T_conv_hw_t *)cdata->priv)->d_aligned) { \
+ if (H5DEBUG(T) && ((H5T_conv_hw_t *)cdata->priv)->d_aligned) { \
HDfprintf(H5DEBUG(T), \
" %Hu dst elements aligned on %lu-byte boundaries\n", \
- ((H5T_conv_hw_t *)cdata->priv)->d_aligned, \
+ ((H5T_conv_hw_t *)cdata->priv)->d_aligned, \
(unsigned long)H5T_NATIVE_##DTYPE##_ALIGN_g); \
} \
}
@@ -4288,7 +4285,7 @@ H5T_conv_schar_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_schar_uchar, FAIL);
- H5T_CONV_su(SCHAR, UCHAR, signed char, unsigned char, -, -, -);
+ H5T_CONV_su(SCHAR, UCHAR, signed char, unsigned char, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4321,7 +4318,7 @@ H5T_conv_uchar_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uchar_schar, FAIL);
- H5T_CONV_us(UCHAR, SCHAR, unsigned char, signed char, -, SCHAR_MAX, -);
+ H5T_CONV_us(UCHAR, SCHAR, unsigned char, signed char, -, SCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4354,7 +4351,7 @@ H5T_conv_schar_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_schar_short, FAIL);
- H5T_CONV_sS(SCHAR, SHORT, signed char, short, -, -, -);
+ H5T_CONV_sS(SCHAR, SHORT, signed char, short, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4387,7 +4384,7 @@ H5T_conv_schar_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_schar_ushort, FAIL);
- H5T_CONV_sU(SCHAR, USHORT, signed char, unsigned short, -, -, -);
+ H5T_CONV_sU(SCHAR, USHORT, signed char, unsigned short, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4420,7 +4417,7 @@ H5T_conv_uchar_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uchar_short, FAIL);
- H5T_CONV_uS(UCHAR, SHORT, unsigned char, short, -, SHRT_MAX, -);
+ H5T_CONV_uS(UCHAR, SHORT, unsigned char, short, -, SHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4453,7 +4450,7 @@ H5T_conv_uchar_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uchar_ushort, FAIL);
- H5T_CONV_uU(UCHAR, USHORT, unsigned char, unsigned short, -, -, -);
+ H5T_CONV_uU(UCHAR, USHORT, unsigned char, unsigned short, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4485,7 +4482,7 @@ H5T_conv_schar_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_schar_int, FAIL);
- H5T_CONV_sS(SCHAR, INT, signed char, int, -, -, -);
+ H5T_CONV_sS(SCHAR, INT, signed char, int, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4517,7 +4514,7 @@ H5T_conv_schar_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_schar_uint, FAIL);
- H5T_CONV_sU(SCHAR, UINT, signed char, unsigned, -, -, -);
+ H5T_CONV_sU(SCHAR, UINT, signed char, unsigned, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4549,7 +4546,7 @@ H5T_conv_uchar_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uchar_int, FAIL);
- H5T_CONV_uS(UCHAR, INT, unsigned char, int, -, INT_MAX, -);
+ H5T_CONV_uS(UCHAR, INT, unsigned char, int, -, INT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4581,7 +4578,7 @@ H5T_conv_uchar_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uchar_uint, FAIL);
- H5T_CONV_uU(UCHAR, UINT, unsigned char, unsigned, -, -, -);
+ H5T_CONV_uU(UCHAR, UINT, unsigned char, unsigned, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4613,7 +4610,7 @@ H5T_conv_schar_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_schar_long, FAIL);
- H5T_CONV_sS(SCHAR, LONG, signed char, long, -, -, -);
+ H5T_CONV_sS(SCHAR, LONG, signed char, long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4646,7 +4643,7 @@ H5T_conv_schar_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_schar_ulong, FAIL);
- H5T_CONV_sU(SCHAR, ULONG, signed char, unsigned long, -, -, -);
+ H5T_CONV_sU(SCHAR, ULONG, signed char, unsigned long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4678,7 +4675,7 @@ H5T_conv_uchar_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uchar_long, FAIL);
- H5T_CONV_uS(UCHAR, LONG, unsigned char, long, -, LONG_MAX, -);
+ H5T_CONV_uS(UCHAR, LONG, unsigned char, long, -, LONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4711,7 +4708,7 @@ H5T_conv_uchar_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uchar_ulong, FAIL);
- H5T_CONV_uU(UCHAR, ULONG, unsigned char, unsigned long, -, -, -);
+ H5T_CONV_uU(UCHAR, ULONG, unsigned char, unsigned long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4744,7 +4741,7 @@ H5T_conv_schar_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_schar_llong, FAIL);
- H5T_CONV_sS(SCHAR, LLONG, signed char, long_long, -, -, -);
+ H5T_CONV_sS(SCHAR, LLONG, signed char, long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4777,7 +4774,7 @@ H5T_conv_schar_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_schar_ullong, FAIL);
- H5T_CONV_sU(SCHAR, ULLONG, signed char, unsigned long_long, -, -, -);
+ H5T_CONV_sU(SCHAR, ULLONG, signed char, unsigned long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4810,7 +4807,7 @@ H5T_conv_uchar_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uchar_llong, FAIL);
- H5T_CONV_uS(UCHAR, LLONG, unsigned char, long_long, -, LLONG_MAX, -);
+ H5T_CONV_uS(UCHAR, LLONG, unsigned char, long_long, -, LLONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4843,7 +4840,7 @@ H5T_conv_uchar_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uchar_ullong, FAIL);
- H5T_CONV_uU(UCHAR, ULLONG, unsigned char, unsigned long_long, -, -, -);
+ H5T_CONV_uU(UCHAR, ULLONG, unsigned char, unsigned long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4876,7 +4873,7 @@ H5T_conv_short_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_short_schar, FAIL);
- H5T_CONV_Ss(SHORT, SCHAR, short, signed char, SCHAR_MIN, SCHAR_MAX, -);
+ H5T_CONV_Ss(SHORT, SCHAR, short, signed char, SCHAR_MIN, SCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4909,7 +4906,7 @@ H5T_conv_short_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_short_uchar, FAIL);
- H5T_CONV_Su(SHORT, UCHAR, short, unsigned char, -, UCHAR_MAX, -);
+ H5T_CONV_Su(SHORT, UCHAR, short, unsigned char, -, UCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4942,7 +4939,7 @@ H5T_conv_ushort_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ushort_schar, FAIL);
- H5T_CONV_Us(USHORT, SCHAR, unsigned short, signed char, -, SCHAR_MAX, -);
+ H5T_CONV_Us(USHORT, SCHAR, unsigned short, signed char, -, SCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -4975,7 +4972,7 @@ H5T_conv_ushort_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ushort_uchar, FAIL);
- H5T_CONV_Uu(USHORT, UCHAR, unsigned short, unsigned char, -, UCHAR_MAX, -);
+ H5T_CONV_Uu(USHORT, UCHAR, unsigned short, unsigned char, -, UCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5008,7 +5005,7 @@ H5T_conv_short_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_short_ushort, FAIL);
- H5T_CONV_su(SHORT, USHORT, short, unsigned short, -, -, -);
+ H5T_CONV_su(SHORT, USHORT, short, unsigned short, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5041,7 +5038,7 @@ H5T_conv_ushort_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ushort_short, FAIL);
- H5T_CONV_us(USHORT, SHORT, unsigned short, short, -, SHRT_MAX, -);
+ H5T_CONV_us(USHORT, SHORT, unsigned short, short, -, SHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5074,7 +5071,7 @@ H5T_conv_short_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_short_int, FAIL);
- H5T_CONV_sS(SHORT, INT, short, int, -, -, -);
+ H5T_CONV_sS(SHORT, INT, short, int, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5107,7 +5104,7 @@ H5T_conv_short_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_short_uint, FAIL);
- H5T_CONV_sU(SHORT, UINT, short, unsigned, -, -, -);
+ H5T_CONV_sU(SHORT, UINT, short, unsigned, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5140,7 +5137,7 @@ H5T_conv_ushort_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ushort_int, FAIL);
- H5T_CONV_uS(USHORT, INT, unsigned short, int, -, INT_MAX, -);
+ H5T_CONV_uS(USHORT, INT, unsigned short, int, -, INT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5173,7 +5170,7 @@ H5T_conv_ushort_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ushort_uint, FAIL);
- H5T_CONV_uU(USHORT, UINT, unsigned short, unsigned, -, -, -);
+ H5T_CONV_uU(USHORT, UINT, unsigned short, unsigned, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5206,7 +5203,7 @@ H5T_conv_short_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_short_long, FAIL);
- H5T_CONV_sS(SHORT, LONG, short, long, -, -, -);
+ H5T_CONV_sS(SHORT, LONG, short, long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5239,7 +5236,7 @@ H5T_conv_short_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_short_ulong, FAIL);
- H5T_CONV_sU(SHORT, ULONG, short, unsigned long, -, -, -);
+ H5T_CONV_sU(SHORT, ULONG, short, unsigned long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5272,7 +5269,7 @@ H5T_conv_ushort_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ushort_long, FAIL);
- H5T_CONV_uS(USHORT, LONG, unsigned short, long, -, LONG_MAX, -);
+ H5T_CONV_uS(USHORT, LONG, unsigned short, long, -, LONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5305,7 +5302,7 @@ H5T_conv_ushort_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ushort_ulong, FAIL);
- H5T_CONV_uU(USHORT, ULONG, unsigned short, unsigned long, -, -, -);
+ H5T_CONV_uU(USHORT, ULONG, unsigned short, unsigned long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5338,7 +5335,7 @@ H5T_conv_short_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_short_llong, FAIL);
- H5T_CONV_sS(SHORT, LLONG, short, long_long, -, -, -);
+ H5T_CONV_sS(SHORT, LLONG, short, long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5371,7 +5368,7 @@ H5T_conv_short_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_short_ullong, FAIL);
- H5T_CONV_sU(SHORT, ULLONG, short, unsigned long_long, -, -, -);
+ H5T_CONV_sU(SHORT, ULLONG, short, unsigned long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5404,7 +5401,7 @@ H5T_conv_ushort_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ushort_llong, FAIL);
- H5T_CONV_uS(USHORT, LLONG, unsigned short, long_long, -, LLONG_MAX, -);
+ H5T_CONV_uS(USHORT, LLONG, unsigned short, long_long, -, LLONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5437,7 +5434,7 @@ H5T_conv_ushort_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ushort_ullong, FAIL);
- H5T_CONV_uU(USHORT, ULLONG, unsigned short, unsigned long_long, -, -, -);
+ H5T_CONV_uU(USHORT, ULLONG, unsigned short, unsigned long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5470,7 +5467,7 @@ H5T_conv_int_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_int_schar, FAIL);
- H5T_CONV_Ss(INT, SCHAR, int, signed char, SCHAR_MIN, SCHAR_MAX, -);
+ H5T_CONV_Ss(INT, SCHAR, int, signed char, SCHAR_MIN, SCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5503,7 +5500,7 @@ H5T_conv_int_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_int_uchar, FAIL);
- H5T_CONV_Su(INT, UCHAR, int, unsigned char, -, UCHAR_MAX, -);
+ H5T_CONV_Su(INT, UCHAR, int, unsigned char, -, UCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5536,7 +5533,7 @@ H5T_conv_uint_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uint_schar, FAIL);
- H5T_CONV_Us(UINT, SCHAR, unsigned, signed char, -, SCHAR_MAX, -);
+ H5T_CONV_Us(UINT, SCHAR, unsigned, signed char, -, SCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5569,7 +5566,7 @@ H5T_conv_uint_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uint_uchar, FAIL);
- H5T_CONV_Uu(UINT, UCHAR, unsigned, unsigned char, -, UCHAR_MAX, -);
+ H5T_CONV_Uu(UINT, UCHAR, unsigned, unsigned char, -, UCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5602,7 +5599,7 @@ H5T_conv_int_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_int_short, FAIL);
- H5T_CONV_Ss(INT, SHORT, int, short, SHRT_MIN, SHRT_MAX, -);
+ H5T_CONV_Ss(INT, SHORT, int, short, SHRT_MIN, SHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5635,7 +5632,7 @@ H5T_conv_int_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_int_ushort, FAIL);
- H5T_CONV_Su(INT, USHORT, int, unsigned short, -, USHRT_MAX, -);
+ H5T_CONV_Su(INT, USHORT, int, unsigned short, -, USHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5668,7 +5665,7 @@ H5T_conv_uint_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uint_short, FAIL);
- H5T_CONV_Us(UINT, SHORT, unsigned, short, -, SHRT_MAX, -);
+ H5T_CONV_Us(UINT, SHORT, unsigned, short, -, SHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5701,7 +5698,7 @@ H5T_conv_uint_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uint_ushort, FAIL);
- H5T_CONV_Uu(UINT, USHORT, unsigned, unsigned short, -, USHRT_MAX, -);
+ H5T_CONV_Uu(UINT, USHORT, unsigned, unsigned short, -, USHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5733,7 +5730,7 @@ H5T_conv_int_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_int_uint, FAIL);
- H5T_CONV_su(INT, UINT, int, unsigned, -, -, -);
+ H5T_CONV_su(INT, UINT, int, unsigned, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5765,7 +5762,7 @@ H5T_conv_uint_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uint_int, FAIL);
- H5T_CONV_us(UINT, INT, unsigned, int, -, INT_MAX, -);
+ H5T_CONV_us(UINT, INT, unsigned, int, -, INT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5797,7 +5794,7 @@ H5T_conv_int_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_int_long, FAIL);
- H5T_CONV_sS(INT, LONG, int, long, -, -, -);
+ H5T_CONV_sS(INT, LONG, int, long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5829,7 +5826,7 @@ H5T_conv_int_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_int_ulong, FAIL);
- H5T_CONV_sU(INT, LONG, int, unsigned long, -, -, -);
+ H5T_CONV_sU(INT, LONG, int, unsigned long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5861,7 +5858,7 @@ H5T_conv_uint_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uint_long, FAIL);
- H5T_CONV_uS(UINT, LONG, unsigned, long, -, LONG_MAX, -);
+ H5T_CONV_uS(UINT, LONG, unsigned, long, -, LONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5893,7 +5890,7 @@ H5T_conv_uint_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uint_ulong, FAIL);
- H5T_CONV_uU(UINT, ULONG, unsigned, unsigned long, -, -, -);
+ H5T_CONV_uU(UINT, ULONG, unsigned, unsigned long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5925,7 +5922,7 @@ H5T_conv_int_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_int_llong, FAIL);
- H5T_CONV_sS(INT, LLONG, int, long_long, -, -, -);
+ H5T_CONV_sS(INT, LLONG, int, long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5957,7 +5954,7 @@ H5T_conv_int_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_int_ullong, FAIL);
- H5T_CONV_sU(INT, ULLONG, int, unsigned long_long, -, -, -);
+ H5T_CONV_sU(INT, ULLONG, int, unsigned long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -5989,7 +5986,7 @@ H5T_conv_uint_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uint_llong, FAIL);
- H5T_CONV_uS(UINT, LLONG, unsigned, long_long, -, LLONG_MAX, -);
+ H5T_CONV_uS(UINT, LLONG, unsigned, long_long, -, LLONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6022,7 +6019,7 @@ H5T_conv_uint_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uint_ullong, FAIL);
- H5T_CONV_uU(UINT, ULLONG, unsigned, unsigned long_long, -, -, -);
+ H5T_CONV_uU(UINT, ULLONG, unsigned, unsigned long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6054,7 +6051,7 @@ H5T_conv_long_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_long_schar, FAIL);
- H5T_CONV_Ss(LONG, SCHAR, long, signed char, SCHAR_MIN, SCHAR_MAX, -);
+ H5T_CONV_Ss(LONG, SCHAR, long, signed char, SCHAR_MIN, SCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6086,7 +6083,7 @@ H5T_conv_long_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_long_uchar, FAIL);
- H5T_CONV_Su(LONG, UCHAR, long, unsigned char, -, UCHAR_MAX, -);
+ H5T_CONV_Su(LONG, UCHAR, long, unsigned char, -, UCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6119,7 +6116,7 @@ H5T_conv_ulong_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ulong_schar, FAIL);
- H5T_CONV_Us(ULONG, SCHAR, unsigned long, signed char, -, SCHAR_MAX, -);
+ H5T_CONV_Us(ULONG, SCHAR, unsigned long, signed char, -, SCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6152,7 +6149,7 @@ H5T_conv_ulong_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ulong_uchar, FAIL);
- H5T_CONV_Uu(ULONG, UCHAR, unsigned long, unsigned char, -, UCHAR_MAX, -);
+ H5T_CONV_Uu(ULONG, UCHAR, unsigned long, unsigned char, -, UCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6184,7 +6181,7 @@ H5T_conv_long_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_long_short, FAIL);
- H5T_CONV_Ss(LONG, SHORT, long, short, SHRT_MIN, SHRT_MAX, -);
+ H5T_CONV_Ss(LONG, SHORT, long, short, SHRT_MIN, SHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6217,7 +6214,7 @@ H5T_conv_long_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_long_ushort, FAIL);
- H5T_CONV_Su(LONG, USHORT, long, unsigned short, -, USHRT_MAX, -);
+ H5T_CONV_Su(LONG, USHORT, long, unsigned short, -, USHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6249,7 +6246,7 @@ H5T_conv_ulong_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ulong_short, FAIL);
- H5T_CONV_Us(ULONG, SHORT, unsigned long, short, -, SHRT_MAX, -);
+ H5T_CONV_Us(ULONG, SHORT, unsigned long, short, -, SHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6282,7 +6279,7 @@ H5T_conv_ulong_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ulong_ushort, FAIL);
- H5T_CONV_Uu(ULONG, USHORT, unsigned long, unsigned short, -, USHRT_MAX, -);
+ H5T_CONV_Uu(ULONG, USHORT, unsigned long, unsigned short, -, USHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6314,7 +6311,7 @@ H5T_conv_long_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_long_int, FAIL);
- H5T_CONV_Ss(LONG, INT, long, int, INT_MIN, INT_MAX, -);
+ H5T_CONV_Ss(LONG, INT, long, int, INT_MIN, INT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6346,7 +6343,7 @@ H5T_conv_long_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_long_uint, FAIL);
- H5T_CONV_Su(LONG, UINT, long, unsigned, -, UINT_MAX, -);
+ H5T_CONV_Su(LONG, UINT, long, unsigned, -, UINT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6378,7 +6375,7 @@ H5T_conv_ulong_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ulong_int, FAIL);
- H5T_CONV_Us(ULONG, INT, unsigned long, int, -, INT_MAX, -);
+ H5T_CONV_Us(ULONG, INT, unsigned long, int, -, INT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6410,7 +6407,7 @@ H5T_conv_ulong_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ulong_uint, FAIL);
- H5T_CONV_Uu(ULONG, UINT, unsigned long, unsigned, -, UINT_MAX, -);
+ H5T_CONV_Uu(ULONG, UINT, unsigned long, unsigned, -, UINT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6442,7 +6439,7 @@ H5T_conv_long_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_long_ulong, FAIL);
- H5T_CONV_su(LONG, ULONG, long, unsigned long, -, -, -);
+ H5T_CONV_su(LONG, ULONG, long, unsigned long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6474,7 +6471,7 @@ H5T_conv_ulong_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ulong_long, FAIL);
- H5T_CONV_us(ULONG, LONG, unsigned long, long, -, LONG_MAX, -);
+ H5T_CONV_us(ULONG, LONG, unsigned long, long, -, LONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6506,7 +6503,7 @@ H5T_conv_long_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_long_llong, FAIL);
- H5T_CONV_sS(LONG, LLONG, long, long_long, -, -, -);
+ H5T_CONV_sS(LONG, LLONG, long, long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6539,7 +6536,7 @@ H5T_conv_long_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_long_ullong, FAIL);
- H5T_CONV_sU(LONG, ULLONG, long, unsigned long_long, -, -, -);
+ H5T_CONV_sU(LONG, ULLONG, long, unsigned long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6572,7 +6569,7 @@ H5T_conv_ulong_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ulong_llong, FAIL);
- H5T_CONV_uS(ULONG, LLONG, unsigned long, long_long, -, LLONG_MAX, -);
+ H5T_CONV_uS(ULONG, LLONG, unsigned long, long_long, -, LLONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6605,7 +6602,7 @@ H5T_conv_ulong_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ulong_ullong, FAIL);
- H5T_CONV_uU(ULONG, ULLONG, unsigned long, unsigned long_long, -, -, -);
+ H5T_CONV_uU(ULONG, ULLONG, unsigned long, unsigned long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6638,7 +6635,7 @@ H5T_conv_llong_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_llong_schar, FAIL);
- H5T_CONV_Ss(LLONG, SCHAR, long_long, signed char, SCHAR_MIN, SCHAR_MAX, -);
+ H5T_CONV_Ss(LLONG, SCHAR, long_long, signed char, SCHAR_MIN, SCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6671,7 +6668,7 @@ H5T_conv_llong_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_llong_uchar, FAIL);
- H5T_CONV_Su(LLONG, UCHAR, long_long, unsigned char, -, UCHAR_MAX, -);
+ H5T_CONV_Su(LLONG, UCHAR, long_long, unsigned char, -, UCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6704,7 +6701,7 @@ H5T_conv_ullong_schar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ullong_schar, FAIL);
- H5T_CONV_Us(ULLONG, SCHAR, unsigned long_long, signed char, -, SCHAR_MAX, -);
+ H5T_CONV_Us(ULLONG, SCHAR, unsigned long_long, signed char, -, SCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6737,7 +6734,7 @@ H5T_conv_ullong_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ullong_uchar, FAIL);
- H5T_CONV_Uu(ULLONG, UCHAR, unsigned long_long, unsigned char, -, UCHAR_MAX, -);
+ H5T_CONV_Uu(ULLONG, UCHAR, unsigned long_long, unsigned char, -, UCHAR_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6770,7 +6767,7 @@ H5T_conv_llong_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_llong_short, FAIL);
- H5T_CONV_Ss(LLONG, SHORT, long_long, short, SHRT_MIN, SHRT_MAX, -);
+ H5T_CONV_Ss(LLONG, SHORT, long_long, short, SHRT_MIN, SHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6803,7 +6800,7 @@ H5T_conv_llong_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_llong_ushort, FAIL);
- H5T_CONV_Su(LLONG, USHORT, long_long, unsigned short, -, USHRT_MAX, -);
+ H5T_CONV_Su(LLONG, USHORT, long_long, unsigned short, -, USHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6836,7 +6833,7 @@ H5T_conv_ullong_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ullong_short, FAIL);
- H5T_CONV_Us(ULLONG, SHORT, unsigned long_long, short, -, SHRT_MAX, -);
+ H5T_CONV_Us(ULLONG, SHORT, unsigned long_long, short, -, SHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6869,7 +6866,7 @@ H5T_conv_ullong_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ullong_ushort, FAIL);
- H5T_CONV_Uu(ULLONG, USHORT, unsigned long_long, unsigned short, -, USHRT_MAX, -);
+ H5T_CONV_Uu(ULLONG, USHORT, unsigned long_long, unsigned short, -, USHRT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6901,7 +6898,7 @@ H5T_conv_llong_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_llong_int, FAIL);
- H5T_CONV_Ss(LLONG, INT, long_long, int, INT_MIN, INT_MAX, -);
+ H5T_CONV_Ss(LLONG, INT, long_long, int, INT_MIN, INT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6933,7 +6930,7 @@ H5T_conv_llong_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_llong_uint, FAIL);
- H5T_CONV_Su(LLONG, UINT, long_long, unsigned, -, UINT_MAX, -);
+ H5T_CONV_Su(LLONG, UINT, long_long, unsigned, -, UINT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6965,7 +6962,7 @@ H5T_conv_ullong_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ullong_int, FAIL);
- H5T_CONV_Us(ULLONG, INT, unsigned long_long, int, -, INT_MAX, -);
+ H5T_CONV_Us(ULLONG, INT, unsigned long_long, int, -, INT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -6998,7 +6995,7 @@ H5T_conv_ullong_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ullong_uint, FAIL);
- H5T_CONV_Uu(ULLONG, UINT, unsigned long_long, unsigned, -, UINT_MAX, -);
+ H5T_CONV_Uu(ULLONG, UINT, unsigned long_long, unsigned, -, UINT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7030,7 +7027,7 @@ H5T_conv_llong_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_llong_long, FAIL);
- H5T_CONV_Ss(LLONG, LONG, long_long, long, LONG_MIN, LONG_MAX, -);
+ H5T_CONV_Ss(LLONG, LONG, long_long, long, LONG_MIN, LONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7063,7 +7060,7 @@ H5T_conv_llong_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_llong_ulong, FAIL);
- H5T_CONV_Su(LLONG, ULONG, long_long, unsigned long, -, ULONG_MAX, -);
+ H5T_CONV_Su(LLONG, ULONG, long_long, unsigned long, -, ULONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7096,7 +7093,7 @@ H5T_conv_ullong_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ullong_long, FAIL);
- H5T_CONV_Us(ULLONG, LONG, unsigned long_long, long, -, LONG_MAX, -);
+ H5T_CONV_Us(ULLONG, LONG, unsigned long_long, long, -, LONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7129,7 +7126,7 @@ H5T_conv_ullong_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ullong_ulong, FAIL);
- H5T_CONV_Uu(ULLONG, ULONG, unsigned long_long, unsigned long, -, ULONG_MAX, -);
+ H5T_CONV_Uu(ULLONG, ULONG, unsigned long_long, unsigned long, -, ULONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7162,7 +7159,7 @@ H5T_conv_llong_ullong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_llong_ullong, FAIL);
- H5T_CONV_su(LLONG, ULLONG, long_long, unsigned long_long, -, -, -);
+ H5T_CONV_su(LLONG, ULLONG, long_long, unsigned long_long, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7195,7 +7192,7 @@ H5T_conv_ullong_llong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ullong_llong, FAIL);
- H5T_CONV_us(ULLONG, LLONG, unsigned long_long, long_long, -, LLONG_MAX, -);
+ H5T_CONV_us(ULLONG, LLONG, unsigned long_long, long_long, -, LLONG_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7232,7 +7229,7 @@ H5T_conv_float_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_float_double, FAIL);
- H5T_CONV_fF(FLOAT, DOUBLE, float, double, -, -, -);
+ H5T_CONV_fF(FLOAT, DOUBLE, float, double, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7266,7 +7263,7 @@ H5T_conv_float_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_float_ldouble, FAIL);
- H5T_CONV_fF(FLOAT, LDOUBLE, float, long double, -, -, -);
+ H5T_CONV_fF(FLOAT, LDOUBLE, float, long double, -, -, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7307,7 +7304,7 @@ H5T_conv_double_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_double_float, FAIL);
- H5T_CONV_Ff(DOUBLE, FLOAT, double, float, -FLT_MAX, FLT_MAX, -);
+ H5T_CONV_Ff(DOUBLE, FLOAT, double, float, -FLT_MAX, FLT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7341,7 +7338,7 @@ H5T_conv_double_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_double_ldouble, FAIL);
- H5T_CONV_fF(DOUBLE, LDOUBLE, double, long double, -, -, -);
+ H5T_CONV_fF(DOUBLE, LDOUBLE, double, long double, -, -, -, -);
done:
@@ -7376,7 +7373,7 @@ H5T_conv_ldouble_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ldouble_float, FAIL);
- H5T_CONV_Ff(LDOUBLE, FLOAT, long double, float, -FLT_MAX, FLT_MAX, -);
+ H5T_CONV_Ff(LDOUBLE, FLOAT, long double, float, -FLT_MAX, FLT_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7410,7 +7407,7 @@ H5T_conv_ldouble_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ldouble_double, FAIL);
- H5T_CONV_Ff(LDOUBLE, DOUBLE, long double, double, -DBL_MAX, DBL_MAX, -);
+ H5T_CONV_Ff(LDOUBLE, DOUBLE, long double, double, -DBL_MAX, DBL_MAX, -, -);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7443,7 +7440,7 @@ H5T_conv_schar_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_schar_float, FAIL);
- H5T_CONV_xF(SCHAR, FLOAT, signed char, float, -, -, FLT_MANT_DIG);
+ H5T_CONV_xF(SCHAR, FLOAT, signed char, float, -, -, H5Tget_precision(src_id), FLT_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7475,7 +7472,7 @@ H5T_conv_schar_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_schar_double, FAIL);
- H5T_CONV_xF(SCHAR, DOUBLE, signed char, double, -, -, DBL_MANT_DIG);
+ H5T_CONV_xF(SCHAR, DOUBLE, signed char, double, -, -, H5Tget_precision(src_id), DBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7508,7 +7505,7 @@ H5T_conv_schar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_schar_ldouble, FAIL);
- H5T_CONV_xF(SCHAR, LDOUBLE, signed char, long double, -, -, DBL_MANT_DIG);
+ H5T_CONV_xF(SCHAR, LDOUBLE, signed char, long double, -, -, H5Tget_precision(src_id), DBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7541,7 +7538,7 @@ H5T_conv_uchar_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uchar_float, FAIL);
- H5T_CONV_xF(UCHAR, FLOAT, unsigned char, float, -, -, FLT_MANT_DIG);
+ H5T_CONV_xF(UCHAR, FLOAT, unsigned char, float, -, -, H5Tget_precision(src_id), FLT_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7573,7 +7570,7 @@ H5T_conv_uchar_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uchar_double, FAIL);
- H5T_CONV_xF(UCHAR, DOUBLE, unsigned char, double, -, -, DBL_MANT_DIG);
+ H5T_CONV_xF(UCHAR, DOUBLE, unsigned char, double, -, -, H5Tget_precision(src_id), DBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7606,7 +7603,7 @@ H5T_conv_uchar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uchar_ldouble, FAIL);
- H5T_CONV_xF(UCHAR, LDOUBLE, unsigned char, long double, -, -, LDBL_MANT_DIG);
+ H5T_CONV_xF(UCHAR, LDOUBLE, unsigned char, long double, -, -, H5Tget_precision(src_id), LDBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7639,7 +7636,7 @@ H5T_conv_short_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_short_float, FAIL);
- H5T_CONV_xF(SHORT, FLOAT, short, float, -, -, FLT_MANT_DIG);
+ H5T_CONV_xF(SHORT, FLOAT, short, float, -, -, H5Tget_precision(src_id), FLT_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7671,7 +7668,7 @@ H5T_conv_short_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_short_double, FAIL);
- H5T_CONV_xF(SHORT, DOUBLE, short, double, -, -, DBL_MANT_DIG);
+ H5T_CONV_xF(SHORT, DOUBLE, short, double, -, -, H5Tget_precision(src_id), DBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7704,7 +7701,7 @@ H5T_conv_short_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_short_ldouble, FAIL);
- H5T_CONV_xF(SHORT, LDOUBLE, short, long double, -, -, LDBL_MANT_DIG);
+ H5T_CONV_xF(SHORT, LDOUBLE, short, long double, -, -, H5Tget_precision(src_id), LDBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7737,7 +7734,7 @@ H5T_conv_ushort_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ushort_float, FAIL);
- H5T_CONV_xF(USHORT, FLOAT, unsigned short, float, -, -, FLT_MANT_DIG);
+ H5T_CONV_xF(USHORT, FLOAT, unsigned short, float, -, -, H5Tget_precision(src_id), FLT_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7769,7 +7766,7 @@ H5T_conv_ushort_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ushort_double, FAIL);
- H5T_CONV_xF(USHORT, DOUBLE, unsigned short, double, -, -, DBL_MANT_DIG);
+ H5T_CONV_xF(USHORT, DOUBLE, unsigned short, double, -, -, H5Tget_precision(src_id), DBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7802,7 +7799,7 @@ H5T_conv_ushort_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ushort_ldouble, FAIL);
- H5T_CONV_xF(USHORT, LDOUBLE, unsigned short, long double, -, -, LDBL_MANT_DIG);
+ H5T_CONV_xF(USHORT, LDOUBLE, unsigned short, long double, -, -, H5Tget_precision(src_id), LDBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7835,7 +7832,7 @@ H5T_conv_int_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_int_float, FAIL);
- H5T_CONV_xF(INT, FLOAT, int, float, -, -, FLT_MANT_DIG);
+ H5T_CONV_xF(INT, FLOAT, int, float, -, -, H5Tget_precision(src_id), FLT_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7867,7 +7864,7 @@ H5T_conv_int_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_int_double, FAIL);
- H5T_CONV_xF(INT, DOUBLE, int, double, -, -, DBL_MANT_DIG);
+ H5T_CONV_xF(INT, DOUBLE, int, double, -, -, H5Tget_precision(src_id), DBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7900,7 +7897,7 @@ H5T_conv_int_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_int_ldouble, FAIL);
- H5T_CONV_xF(INT, LDOUBLE, int, long double, -, -, LDBL_MANT_DIG);
+ H5T_CONV_xF(INT, LDOUBLE, int, long double, -, -, H5Tget_precision(src_id), LDBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7933,7 +7930,7 @@ H5T_conv_uint_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uint_float, FAIL);
- H5T_CONV_xF(UINT, FLOAT, unsigned int, float, -, -, FLT_MANT_DIG);
+ H5T_CONV_xF(UINT, FLOAT, unsigned int, float, -, -, H5Tget_precision(src_id), FLT_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7965,7 +7962,7 @@ H5T_conv_uint_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uint_double, FAIL);
- H5T_CONV_xF(UINT, DOUBLE, unsigned int, double, -, -, DBL_MANT_DIG);
+ H5T_CONV_xF(UINT, DOUBLE, unsigned int, double, -, -, H5Tget_precision(src_id), DBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -7998,7 +7995,7 @@ H5T_conv_uint_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_uint_ldouble, FAIL);
- H5T_CONV_xF(UINT, LDOUBLE, unsigned int, long double, -, -, LDBL_MANT_DIG);
+ H5T_CONV_xF(UINT, LDOUBLE, unsigned int, long double, -, -, H5Tget_precision(src_id), LDBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8031,7 +8028,7 @@ H5T_conv_long_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_long_float, FAIL);
- H5T_CONV_xF(LONG, FLOAT, long, float, -, -, FLT_MANT_DIG);
+ H5T_CONV_xF(LONG, FLOAT, long, float, -, -, H5Tget_precision(src_id), FLT_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8063,7 +8060,7 @@ H5T_conv_long_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_long_double, FAIL);
- H5T_CONV_xF(LONG, DOUBLE, long, double, -, -, DBL_MANT_DIG);
+ H5T_CONV_xF(LONG, DOUBLE, long, double, -, -, H5Tget_precision(src_id), DBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8096,7 +8093,7 @@ H5T_conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_long_ldouble, FAIL);
- H5T_CONV_xF(LONG, LDOUBLE, long, long double, -, -, LDBL_MANT_DIG);
+ H5T_CONV_xF(LONG, LDOUBLE, long, long double, -, -, H5Tget_precision(src_id), LDBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8130,7 +8127,7 @@ H5T_conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ulong_float, FAIL);
- H5T_CONV_xF(ULONG, FLOAT, unsigned long, float, -, -, FLT_MANT_DIG);
+ H5T_CONV_xF(ULONG, FLOAT, unsigned long, float, -, -, H5Tget_precision(src_id), FLT_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8164,7 +8161,7 @@ H5T_conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ulong_double, FAIL);
- H5T_CONV_xF(ULONG, DOUBLE, unsigned long, double, -, -, DBL_MANT_DIG);
+ H5T_CONV_xF(ULONG, DOUBLE, unsigned long, double, -, -, H5Tget_precision(src_id), DBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8198,7 +8195,7 @@ H5T_conv_ulong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ulong_ldouble, FAIL);
- H5T_CONV_xF(ULONG, LDOUBLE, unsigned long, long double, -, -, LDBL_MANT_DIG);
+ H5T_CONV_xF(ULONG, LDOUBLE, unsigned long, long double, -, -, H5Tget_precision(src_id), LDBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8231,7 +8228,7 @@ H5T_conv_llong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_llong_float, FAIL);
- H5T_CONV_xF(LLONG, FLOAT, long_long, float, -, -, FLT_MANT_DIG);
+ H5T_CONV_xF(LLONG, FLOAT, long_long, float, -, -, H5Tget_precision(src_id), FLT_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8263,7 +8260,7 @@ H5T_conv_llong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_llong_double, FAIL);
- H5T_CONV_xF(LLONG, DOUBLE, long_long, double, -, -, DBL_MANT_DIG);
+ H5T_CONV_xF(LLONG, DOUBLE, long_long, double, -, -, H5Tget_precision(src_id), DBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8296,7 +8293,7 @@ H5T_conv_llong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_llong_ldouble, FAIL);
- H5T_CONV_xF(LLONG, LDOUBLE, long_long, long double, -, -, LDBL_MANT_DIG);
+ H5T_CONV_xF(LLONG, LDOUBLE, long_long, long double, -, -, H5Tget_precision(src_id), LDBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8330,7 +8327,7 @@ H5T_conv_ullong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ullong_float, FAIL);
- H5T_CONV_xF(ULLONG, FLOAT, unsigned long_long, float, -, -, FLT_MANT_DIG);
+ H5T_CONV_xF(ULLONG, FLOAT, unsigned long_long, float, -, -, H5Tget_precision(src_id), FLT_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8364,7 +8361,7 @@ H5T_conv_ullong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ullong_double, FAIL);
- H5T_CONV_xF(ULLONG, DOUBLE, unsigned long_long, double, -, -, DBL_MANT_DIG);
+ H5T_CONV_xF(ULLONG, DOUBLE, unsigned long_long, double, -, -, H5Tget_precision(src_id), DBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8398,7 +8395,7 @@ H5T_conv_ullong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ullong_ldouble, FAIL);
- H5T_CONV_xF(ULLONG, LDOUBLE, unsigned long_long, long double, -, -, LDBL_MANT_DIG);
+ H5T_CONV_xF(ULLONG, LDOUBLE, unsigned long_long, long double, -, -, H5Tget_precision(src_id), LDBL_MANT_DIG);
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8431,7 +8428,7 @@ H5T_conv_float_schar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_float_schar, FAIL);
- H5T_CONV_Fx(FLOAT, SCHAR, float, signed char, SCHAR_MIN, SCHAR_MAX, -);
+ H5T_CONV_Fx(FLOAT, SCHAR, float, signed char, SCHAR_MIN, SCHAR_MAX, FLT_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8463,7 +8460,7 @@ H5T_conv_float_uchar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_float_uchar, FAIL);
- H5T_CONV_Fx(FLOAT, UCHAR, float, unsigned char, 0, UCHAR_MAX, -);
+ H5T_CONV_Fx(FLOAT, UCHAR, float, unsigned char, 0, UCHAR_MAX, FLT_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8495,7 +8492,7 @@ H5T_conv_double_schar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_double_schar, FAIL);
- H5T_CONV_Fx(DOUBLE, SCHAR, double, signed char, SCHAR_MIN, SCHAR_MAX, -);
+ H5T_CONV_Fx(DOUBLE, SCHAR, double, signed char, SCHAR_MIN, SCHAR_MAX, DBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8527,7 +8524,7 @@ H5T_conv_double_uchar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_double_uchar, FAIL);
- H5T_CONV_Fx(DOUBLE, UCHAR, double, unsigned char, 0, UCHAR_MAX, -);
+ H5T_CONV_Fx(DOUBLE, UCHAR, double, unsigned char, 0, UCHAR_MAX, DBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8560,7 +8557,7 @@ H5T_conv_ldouble_schar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ldouble_schar, FAIL);
- H5T_CONV_Fx(LDOUBLE, SCHAR, long double, signed char, SCHAR_MIN, SCHAR_MAX, -);
+ H5T_CONV_Fx(LDOUBLE, SCHAR, long double, signed char, SCHAR_MIN, SCHAR_MAX, LDBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8594,7 +8591,7 @@ H5T_conv_ldouble_uchar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ldouble_uchar, FAIL);
- H5T_CONV_Fx(LDOUBLE, UCHAR, long double, unsigned char, 0, UCHAR_MAX, -);
+ H5T_CONV_Fx(LDOUBLE, UCHAR, long double, unsigned char, 0, UCHAR_MAX, LDBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8627,7 +8624,7 @@ H5T_conv_float_short (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_float_short, FAIL);
- H5T_CONV_Fx(FLOAT, SHORT, float, short, SHRT_MIN, SHRT_MAX, -);
+ H5T_CONV_Fx(FLOAT, SHORT, float, short, SHRT_MIN, SHRT_MAX, FLT_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8659,7 +8656,7 @@ H5T_conv_float_ushort (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_float_ushort, FAIL);
- H5T_CONV_Fx(FLOAT, USHORT, float, unsigned short, 0, USHRT_MAX, -);
+ H5T_CONV_Fx(FLOAT, USHORT, float, unsigned short, 0, USHRT_MAX, FLT_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8691,7 +8688,7 @@ H5T_conv_double_short (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_double_short, FAIL);
- H5T_CONV_Fx(DOUBLE, SHORT, double, short, SHRT_MIN, SHRT_MAX, -);
+ H5T_CONV_Fx(DOUBLE, SHORT, double, short, SHRT_MIN, SHRT_MAX, DBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8723,7 +8720,7 @@ H5T_conv_double_ushort (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_double_ushort, FAIL);
- H5T_CONV_Fx(DOUBLE, USHORT, double, unsigned short, 0, USHRT_MAX, -);
+ H5T_CONV_Fx(DOUBLE, USHORT, double, unsigned short, 0, USHRT_MAX, DBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8756,7 +8753,7 @@ H5T_conv_ldouble_short (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ldouble_short, FAIL);
- H5T_CONV_Fx(LDOUBLE, SHORT, long double, short, SHRT_MIN, SHRT_MAX, -);
+ H5T_CONV_Fx(LDOUBLE, SHORT, long double, short, SHRT_MIN, SHRT_MAX, LDBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8790,7 +8787,7 @@ H5T_conv_ldouble_ushort (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ldouble_ushort, FAIL);
- H5T_CONV_Fx(LDOUBLE, USHORT, long double, unsigned short, 0, USHRT_MAX, -);
+ H5T_CONV_Fx(LDOUBLE, USHORT, long double, unsigned short, 0, USHRT_MAX, LDBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8823,7 +8820,7 @@ H5T_conv_float_int (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_float_int, FAIL);
- H5T_CONV_Fx(FLOAT, INT, float, int, INT_MIN, INT_MAX, -);
+ H5T_CONV_Fx(FLOAT, INT, float, int, INT_MIN, INT_MAX, FLT_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8855,7 +8852,7 @@ H5T_conv_float_uint (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_float_uint, FAIL);
- H5T_CONV_Fx(FLOAT, UINT, float, unsigned int, 0, UINT_MAX, -);
+ H5T_CONV_Fx(FLOAT, UINT, float, unsigned int, 0, UINT_MAX, FLT_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8887,7 +8884,7 @@ H5T_conv_double_int (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_double_int, FAIL);
- H5T_CONV_Fx(DOUBLE, INT, double, int, INT_MIN, INT_MAX, -);
+ H5T_CONV_Fx(DOUBLE, INT, double, int, INT_MIN, INT_MAX, DBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8919,7 +8916,7 @@ H5T_conv_double_uint (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_double_uint, FAIL);
- H5T_CONV_Fx(DOUBLE, UINT, double, unsigned int, 0, UINT_MAX, -);
+ H5T_CONV_Fx(DOUBLE, UINT, double, unsigned int, 0, UINT_MAX, DBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8952,7 +8949,7 @@ H5T_conv_ldouble_int (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ldouble_int, FAIL);
- H5T_CONV_Fx(LDOUBLE, INT, long double, int, INT_MIN, INT_MAX, -);
+ H5T_CONV_Fx(LDOUBLE, INT, long double, int, INT_MIN, INT_MAX, LDBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -8986,7 +8983,7 @@ H5T_conv_ldouble_uint (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ldouble_uint, FAIL);
- H5T_CONV_Fx(LDOUBLE, UINT, long double, unsigned int, 0, UINT_MAX, -);
+ H5T_CONV_Fx(LDOUBLE, UINT, long double, unsigned int, 0, UINT_MAX, LDBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -9019,7 +9016,7 @@ H5T_conv_float_long (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_float_long, FAIL);
- H5T_CONV_Fx(FLOAT, LONG, float, long, LONG_MIN, LONG_MAX, -);
+ H5T_CONV_Fx(FLOAT, LONG, float, long, LONG_MIN, LONG_MAX, FLT_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -9051,7 +9048,7 @@ H5T_conv_float_ulong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_float_ulong, FAIL);
- H5T_CONV_Fx(FLOAT, ULONG, float, unsigned long, 0, ULONG_MAX, -);
+ H5T_CONV_Fx(FLOAT, ULONG, float, unsigned long, 0, ULONG_MAX, FLT_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -9083,7 +9080,7 @@ H5T_conv_double_long (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_double_long, FAIL);
- H5T_CONV_Fx(DOUBLE, LONG, double, long, LONG_MIN, LONG_MAX, -);
+ H5T_CONV_Fx(DOUBLE, LONG, double, long, LONG_MIN, LONG_MAX, DBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -9115,7 +9112,7 @@ H5T_conv_double_ulong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_double_ulong, FAIL);
- H5T_CONV_Fx(DOUBLE, ULONG, double, unsigned long, 0, ULONG_MAX, -);
+ H5T_CONV_Fx(DOUBLE, ULONG, double, unsigned long, 0, ULONG_MAX, DBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -9148,7 +9145,7 @@ H5T_conv_ldouble_long (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ldouble_long, FAIL);
- H5T_CONV_Fx(LDOUBLE, LONG, long double, long, LONG_MIN, LONG_MAX, -);
+ H5T_CONV_Fx(LDOUBLE, LONG, long double, long, LONG_MIN, LONG_MAX, LDBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -9182,7 +9179,7 @@ H5T_conv_ldouble_ulong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ldouble_ulong, FAIL);
- H5T_CONV_Fx(LDOUBLE, ULONG, long double, unsigned long, 0, ULONG_MAX, -);
+ H5T_CONV_Fx(LDOUBLE, ULONG, long double, unsigned long, 0, ULONG_MAX, LDBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -9216,7 +9213,7 @@ H5T_conv_float_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_float_llong, FAIL);
- H5T_CONV_Fx(FLOAT, LLONG, float, long_long, LLONG_MIN, LLONG_MAX, -);
+ H5T_CONV_Fx(FLOAT, LLONG, float, long_long, LLONG_MIN, LLONG_MAX, FLT_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -9250,7 +9247,7 @@ H5T_conv_float_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_float_ullong, FAIL);
- H5T_CONV_Fx(FLOAT, ULLONG, float, unsigned long_long, 0, ULLONG_MAX, -);
+ H5T_CONV_Fx(FLOAT, ULLONG, float, unsigned long_long, 0, ULLONG_MAX, FLT_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -9284,7 +9281,7 @@ H5T_conv_double_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_double_llong, FAIL);
- H5T_CONV_Fx(DOUBLE, LLONG, double, long_long, LLONG_MIN, LLONG_MAX, -);
+ H5T_CONV_Fx(DOUBLE, LLONG, double, long_long, LLONG_MIN, LLONG_MAX, DBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -9318,7 +9315,7 @@ H5T_conv_double_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_double_ullong, FAIL);
- H5T_CONV_Fx(DOUBLE, ULLONG, double, unsigned long_long, 0, ULLONG_MAX, -);
+ H5T_CONV_Fx(DOUBLE, ULLONG, double, unsigned long_long, 0, ULLONG_MAX, DBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -9352,7 +9349,7 @@ H5T_conv_ldouble_llong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ldouble_llong, FAIL);
- H5T_CONV_Fx(LDOUBLE, LLONG, long double, long_long, LLONG_MIN, LLONG_MAX, -);
+ H5T_CONV_Fx(LDOUBLE, LLONG, long double, long_long, LLONG_MIN, LLONG_MAX, LDBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
@@ -9386,7 +9383,7 @@ H5T_conv_ldouble_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
FUNC_ENTER_NOAPI(H5T_conv_ldouble_ullong, FAIL);
- H5T_CONV_Fx(LDOUBLE, ULLONG, long double, unsigned long_long, 0, ULLONG_MAX, -);
+ H5T_CONV_Fx(LDOUBLE, ULLONG, long double, unsigned long_long, 0, ULLONG_MAX, LDBL_MANT_DIG, H5Tget_precision(dst_id));
done:
FUNC_LEAVE_NOAPI(ret_value);
diff --git a/test/dt_arith.c b/test/dt_arith.c
index abdba99..f13bba8 100644
--- a/test/dt_arith.c
+++ b/test/dt_arith.c
@@ -639,6 +639,229 @@ test_hard_query(void)
/*-------------------------------------------------------------------------
+ * Function: expt_handle
+ *
+ * Purpose: Gets called from test_particular_fp_integer() for data type
+ * conversion exceptions.
+ *
+ * Return: H5T_CONV_HANDLED 1
+ *
+ * Programmer: Raymond Lu
+ * Sept 7, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+static H5T_conv_ret_t
+expt_handle(H5T_conv_except_t except_type, hid_t UNUSED src_id, hid_t UNUSED dst_id, void UNUSED *src_buf,
+ void *dst_buf, void *user_data)
+{
+ H5T_conv_ret_t ret = H5T_CONV_HANDLED;
+ signed char fill_value1 = 7;
+ int fill_value2 = 13;
+
+ if(except_type == H5T_CONV_EXCEPT_RANGE_HI || except_type == H5T_CONV_EXCEPT_RANGE_LOW ||
+ except_type == H5T_CONV_EXCEPT_TRUNCATE) {
+ if(*(hbool_t*)user_data)
+ *(signed char*)dst_buf = fill_value1;
+ else
+ *(int*)dst_buf = fill_value2;
+ }
+
+ return ret;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: test_particular_fp_integer
+ *
+ * Purpose: Tests hard conversions from floating numbers to integers in
+ * a special situation when the source is "float" and assigned
+ * the value of "INT_MAX". A compiler may do roundup making
+ * this value "INT_MAX+1". When this float value is casted to
+ * int, overflow happens. This test makes sure the library
+ * returns exception in this situation.
+ *
+ * Also verifies the library handles conversion from double to
+ * signed char correctly when the value of double is SCHAR_MAX.
+ * The test makes sure the signed char doesn't overflow.
+ *
+ * This test is mainly for netCDF's request.
+ *
+ * Return: Success: 0
+ *
+ * Failure: number of errors
+ *
+ * Programmer: Raymond Lu
+ * Sept 7, 2005
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+static int test_particular_fp_integer(void)
+{
+ hid_t dxpl_id;
+ hbool_t flag;
+ double src_d = (double)SCHAR_MAX;
+ signed char dst_c;
+ unsigned char *buf1, *buf2;
+ unsigned char *saved_buf1, *saved_buf2;
+ unsigned int src_size1, src_size2;
+ unsigned int dst_size1, dst_size2;
+ float src_f = (float)INT_MAX;
+ int dst_i;
+ int fill_value = 13;
+ int endian; /*endianess */
+ char str[256]; /*message string */
+ unsigned int fails_this_test = 0;
+ int i, j;
+
+ TESTING("hard particular floating number -> integer conversions");
+
+ if((dxpl_id = H5Pcreate(H5P_DATASET_XFER))<0) {
+ H5_FAILED();
+ printf("Can't create data transfer property list\n");
+ goto error;
+ }
+
+ /* Test conversion from double (the value is SCHAR_MAX) to signed char. */
+ endian = H5Tget_order(H5T_NATIVE_DOUBLE);
+ src_size1 = H5Tget_size(H5T_NATIVE_DOUBLE);
+ dst_size1 = H5Tget_size(H5T_NATIVE_SCHAR);
+ buf1 = (unsigned char*)calloc(1, MAX(src_size1, dst_size1));
+ saved_buf1 = (unsigned char*)calloc(1, MAX(src_size1, dst_size1));
+
+ memcpy(buf1, &src_d, src_size1);
+ memcpy(saved_buf1, &src_d, src_size1);
+
+ /* Register exception handling function and signal the destination is "signed char". */
+ flag = 1;
+ if(H5Pset_type_conv_cb(dxpl_id, expt_handle, &flag)<0) {
+ H5_FAILED();
+ printf("Can't register conversion callback\n");
+ goto error;
+ }
+
+ /* Do conversion */
+ if(H5Tconvert(H5T_NATIVE_DOUBLE, H5T_NATIVE_SCHAR, 1, buf1, NULL, dxpl_id)<0) {
+ H5_FAILED();
+ printf("Can't convert data\n");
+ goto error;
+ }
+
+ memcpy(&dst_c, buf1, dst_size1);
+
+ /* Print errors */
+ if(dst_c != SCHAR_MAX) {
+ double x;
+ signed char y;
+
+ if(0 == fails_this_test++)
+ H5_FAILED();
+
+ printf(" test double to signed char:\n");
+ printf(" src = ");
+ for (j=0; j<src_size1; j++)
+ printf(" %02x", saved_buf1[ENDIAN(src_size1, j)]);
+
+ HDmemcpy(&x, saved_buf1, src_size1);
+ printf(" %29.20e\n", x);
+
+ printf(" dst = ");
+ for (j=0; j<dst_size1; j++)
+ printf(" %02x", buf1[ENDIAN(dst_size1, j)]);
+
+ HDmemcpy(&y, buf1, dst_size1);
+ printf(" %29d\n", y);
+ }
+
+ /* Test conversion from float (the value is INT_MAX) to int. */
+ src_size2 = H5Tget_size(H5T_NATIVE_FLOAT);
+ dst_size2 = H5Tget_size(H5T_NATIVE_INT);
+ buf2 = (unsigned char*)calloc(1, MAX(src_size2, dst_size2));
+ saved_buf2 = (unsigned char*)calloc(1, MAX(src_size2, dst_size2));
+ memcpy(buf2, &src_f, src_size2);
+ memcpy(saved_buf2, &src_f, src_size2);
+
+ /* signal exception handling function that the destination is "int". */
+ flag = 0;
+
+ /* Do conversion */
+ if(H5Tconvert(H5T_NATIVE_FLOAT, H5T_NATIVE_INT, 1, buf2, NULL, dxpl_id)<0) {
+ H5_FAILED();
+ printf("Can't convert data\n");
+ goto error;
+ }
+
+ memcpy(&dst_i, buf2, dst_size2);
+
+ /* Print errors */
+ if(dst_i != fill_value) {
+ float x;
+ int y;
+
+ if(0 == fails_this_test++)
+ H5_FAILED();
+
+ printf(" test float to int:\n");
+ printf(" src = ");
+ for (j=0; j<src_size2; j++)
+ printf(" %02x", saved_buf2[ENDIAN(src_size2, j)]);
+
+ HDmemcpy(&x, saved_buf2, src_size2);
+ printf(" %29.20e\n", x);
+
+ printf(" dst = ");
+ for (j=0; j<dst_size2; j++)
+ printf(" %02x", buf2[ENDIAN(dst_size2, j)]);
+
+ HDmemcpy(&y, buf2, dst_size2);
+ printf(" %29d\n", y);
+ }
+
+ if(fails_this_test)
+ goto error;
+
+ if(H5Pclose(dxpl_id)<0) {
+ H5_FAILED();
+ printf("Can't close property list\n");
+ goto error;
+ }
+
+ if(buf1)
+ free(buf1);
+ if(buf2)
+ free(buf2);
+ if(saved_buf1)
+ free(saved_buf1);
+ if(saved_buf2)
+ free(saved_buf2);
+
+ PASSED();
+ return 0;
+
+error:
+ HDfflush(stdout);
+ H5E_BEGIN_TRY {
+ H5Pclose(dxpl_id);
+ } H5E_END_TRY;
+ if(buf1)
+ free(buf1);
+ if(buf2)
+ free(buf2);
+ if(saved_buf1)
+ free(saved_buf1);
+ if(saved_buf2)
+ free(saved_buf2);
+
+ reset_hdf5(); /*print statistics*/
+ return MAX((int)fails_this_test, 1);
+}
+
+
+/*-------------------------------------------------------------------------
* Function: test_derived_flt
*
* Purpose: Tests user-define and query functions of floating-point types.
@@ -4858,6 +5081,9 @@ main(void)
/* Test hardware float-integer conversion functions */
nerrors += run_fp_int_conv("hard");
+ /* Test a few special values for hardware float-integer conversions */
+ nerrors += test_particular_fp_integer();
+
/*----------------------------------------------------------------------
* Software tests
*----------------------------------------------------------------------