diff options
author | Raymond Lu <songyulu@hdfgroup.org> | 2005-09-12 19:39:16 (GMT) |
---|---|---|
committer | Raymond Lu <songyulu@hdfgroup.org> | 2005-09-12 19:39:16 (GMT) |
commit | 93e661f16ba03b2acca208fb16518e6ce26e86d8 (patch) | |
tree | 65d81102c018e950c8bf30ba07186d10ed4e8b32 | |
parent | c78c580f5cb64abd8bf33331f11ef666382741cb (diff) | |
download | hdf5-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.c | 473 | ||||
-rw-r--r-- | test/dt_arith.c | 226 |
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 *---------------------------------------------------------------------- |