diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2013-03-20 04:41:16 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2013-03-20 04:41:16 (GMT) |
commit | 1d95950134130c55247df3dd6bf833756db28625 (patch) | |
tree | 36efd13fbfdde2fa7f01dd52acdc23d29efa54a3 /tools/lib | |
parent | 1e56e8ce4f8725320c1903aa028c349f43dcb9da (diff) | |
download | hdf5-1d95950134130c55247df3dd6bf833756db28625.zip hdf5-1d95950134130c55247df3dd6bf833756db28625.tar.gz hdf5-1d95950134130c55247df3dd6bf833756db28625.tar.bz2 |
[svn-r23396] Description:
Bring r23395 from trunk to 1.8 branch:
Bring Coverity changes from branch to trunk:
r20682:
fixed coverity:
76, 77, 635, 636, 1164, 1165, 1166, 1121, 1122, 1117, 1343
Tested on:
Mac OSX/64 10.8.3 (amazon) w/C++ & FORTRAN
(too minor to require h5committest)
Diffstat (limited to 'tools/lib')
-rw-r--r-- | tools/lib/h5diff.c | 34 | ||||
-rw-r--r-- | tools/lib/h5diff.h | 205 | ||||
-rw-r--r-- | tools/lib/h5diff_array.c | 689 | ||||
-rw-r--r-- | tools/lib/h5diff_attr.c | 14 | ||||
-rw-r--r-- | tools/lib/h5tools_utils.h | 2 |
5 files changed, 455 insertions, 489 deletions
diff --git a/tools/lib/h5diff.c b/tools/lib/h5diff.c index 9d73d2b..a9f2433 100644 --- a/tools/lib/h5diff.c +++ b/tools/lib/h5diff.c @@ -241,7 +241,6 @@ static int is_exclude_path (char * path, h5trav_type_t type, diff_opt_t *options struct exclude_path_list * exclude_path_ptr; int ret_cmp; int ret = 0; - int len_grp; /* check if exclude path option is given */ if (!options->exclude_path) @@ -260,6 +259,8 @@ static int is_exclude_path (char * path, h5trav_type_t type, diff_opt_t *options HDstrlen(exclude_path_ptr->obj_path)); if (ret_cmp == 0) /* found matching members */ { + size_t len_grp; + /* check if given path belong to an excluding group, if so * exclude it as well. * This verifies if “/grp1/dset1” is only under “/grp1”, but @@ -338,7 +339,6 @@ static void free_exclude_path_list(diff_opt_t *options) *------------------------------------------------------------------------*/ static void build_match_list (const char *objname1, trav_info_t *info1, const char *objname2, trav_info_t *info2, trav_table_t ** table_out, diff_opt_t *options) { - unsigned i; size_t curr1 = 0; size_t curr2 = 0; unsigned infile[2]; @@ -346,8 +346,8 @@ static void build_match_list (const char *objname1, trav_info_t *info1, const ch char * path2_lp; h5trav_type_t type1_l; h5trav_type_t type2_l; - int path1_offset = 0; - int path2_offset = 0; + size_t path1_offset = 0; + size_t path2_offset = 0; int cmp; trav_table_t *table; size_t idx; @@ -614,8 +614,8 @@ hsize_t h5diff(const char *fname1, int i; int l_ret1 = -1; int l_ret2 = -1; - const char * obj1fullname = NULL; - const char * obj2fullname = NULL; + char * obj1fullname = NULL; + char * obj2fullname = NULL; int both_objs_grp = 0; /* init to group type */ h5trav_type_t obj1type = H5TRAV_TYPE_GROUP; @@ -697,25 +697,25 @@ hsize_t h5diff(const char *fname1, /* make the given object1 fullpath, start with "/" */ if (HDstrncmp(objname1, "/", 1)) { - HDstrcpy((char *)obj1fullname, "/"); - HDstrcat((char *)obj1fullname, objname1); + HDstrcpy(obj1fullname, "/"); + HDstrcat(obj1fullname, objname1); } else - HDstrcpy((char *)obj1fullname, objname1); + HDstrcpy(obj1fullname, objname1); /* make the given object2 fullpath, start with "/" */ if (HDstrncmp(objname2, "/", 1)) { - HDstrcpy((char *)obj2fullname, "/"); - HDstrcat((char *)obj2fullname, objname2); + HDstrcpy(obj2fullname, "/"); + HDstrcat(obj2fullname, objname2); } else - HDstrcpy((char *)obj2fullname, objname2); + HDstrcpy(obj2fullname, objname2); /*---------------------------------------------------------- * check if obj1 is root, group, single object or symlink */ - if(!HDstrcmp((char *)obj1fullname, "/")) + if(!HDstrcmp(obj1fullname, "/")) { obj1type = H5TRAV_TYPE_GROUP; } @@ -833,10 +833,10 @@ hsize_t h5diff(const char *fname1, { /* set root group */ obj1fullname = (char*)HDcalloc(2, sizeof(char)); - HDstrcat((char *)obj1fullname, "/"); + HDstrcat(obj1fullname, "/"); obj1type = H5TRAV_TYPE_GROUP; obj2fullname = (char*)HDcalloc(2, sizeof(char)); - HDstrcat((char *)obj2fullname, "/"); + HDstrcat(obj2fullname, "/"); obj2type = H5TRAV_TYPE_GROUP; } @@ -1061,9 +1061,9 @@ out: /* free buffers */ if (obj1fullname) - HDfree((char *)obj1fullname); + HDfree(obj1fullname); if (obj2fullname) - HDfree((char *)obj2fullname); + HDfree(obj2fullname); /* free link info buffer */ if (trg_linfo1.trg_path) diff --git a/tools/lib/h5diff.h b/tools/lib/h5diff.h index 2530805..9e1c8bb 100644 --- a/tools/lib/h5diff.h +++ b/tools/lib/h5diff.h @@ -196,210 +196,5 @@ int print_objname(diff_opt_t *options, hsize_t nfound); void do_print_objname (const char *OBJ, const char *path1, const char *path2, diff_opt_t * opts); void do_print_attrname (const char *attr, const char *path1, const char *path2); - -/*------------------------------------------------------------------------- - * XCAO, 11/10/2010 - * added to improve performance for compound datasets - */ -typedef struct mcomp_t -{ - int n; /* number of members */ - hid_t *ids; /* member type id */ - unsigned char *flags; - size_t *offsets; - struct mcomp_t **m; /* members */ -}mcomp_t; - -hsize_t diff_datum(void *_mem1, - void *_mem2, - hid_t m_type, - hsize_t i, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - hid_t container1_id, - hid_t container2_id, /*where the reference came from*/ - int *ph, /*print header */ - mcomp_t *members); /*compound members */ - - - -hsize_t diff_float(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - -hsize_t diff_double(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - -#if H5_SIZEOF_LONG_DOUBLE !=0 - -hsize_t diff_ldouble(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - -#endif - -hsize_t diff_schar(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - -hsize_t diff_uchar(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - -hsize_t diff_short(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - -hsize_t diff_ushort(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - -hsize_t diff_int(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - -hsize_t diff_uint(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - -hsize_t diff_long(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - -hsize_t diff_ulong(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - -hsize_t diff_llong(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - -hsize_t diff_ullong(unsigned char *mem1, - unsigned char *mem2, - hsize_t nelmts, - hsize_t hyper_start, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - int *ph); - #endif /* H5DIFF_H__ */ diff --git a/tools/lib/h5diff_array.c b/tools/lib/h5diff_array.c index 57a5599..e5b8f79 100644 --- a/tools/lib/h5diff_array.c +++ b/tools/lib/h5diff_array.c @@ -36,7 +36,6 @@ #endif #define I_FORMAT "%-15d %-15d %-15d\n" -#define C_FORMAT "%-16c %-17c\n" #define S_FORMAT "%-16s %-17s\n" #define UI_FORMAT "%-15u %-15u %-15u\n" #define LI_FORMAT "%-15ld %-15ld %-15ld\n" @@ -101,43 +100,44 @@ *------------------------------------------------------------------------- */ -static int not_comparable; +static hbool_t not_comparable; -#define PER(A,B) { per=-1; \ - not_comparable=0; \ - both_zero=0; \ - if (A==0 && B==0) \ - both_zero=1; \ - if (A!=0) \ - per = (double)ABS( ( double)(B-A) / (double)A ); \ +#define PER(A,B) { \ + per = -1; \ + not_comparable = FALSE; \ + both_zero = FALSE; \ + if(FP_ZERO == fpclassify(A) && FP_ZERO == fpclassify(B)) \ + both_zero = TRUE; \ + if(FP_ZERO != fpclassify(A)) \ + per = (double)ABS((double)(B - A) / (double)A); \ else \ - not_comparable=1; \ + not_comparable = TRUE; \ } -#define PER_UNSIGN(TYPE,A,B) { per=-1; \ - not_comparable=0; \ - both_zero=0; \ - if (A==0 && B==0) \ - both_zero=1; \ - if (A!=0) \ - per = ABS((double)((TYPE)(B-A)) / (double)A) ; \ +#define PER_UNSIGN(TYPE,A,B) { \ + per = -1; \ + not_comparable = FALSE; \ + both_zero = FALSE; \ + if(A == 0 && B == 0) \ + both_zero = TRUE; \ + if(A != 0) \ + per = ABS((double)((TYPE)(B - A)) / (double)A) ; \ else \ - not_comparable=1; \ + not_comparable = TRUE; \ } -#define BOTH_ZERO(A,B) { both_zero=0; \ - if (A==0 && B==0) \ - both_zero=1; \ -} +# define PDIFF(a,b) ( (b>a) ? (b-a) : (a-b)) -#define IS_ZERO(A) { is_zero=0; \ - if (A==0) \ - is_zero=1; \ -} +typedef struct mcomp_t +{ + unsigned n; /* number of members */ + hid_t *ids; /* member type id */ + size_t *offsets; + struct mcomp_t **m; /* members */ +}mcomp_t; -# define PDIFF(a,b) ( (b>a) ? (b-a) : (a-b)) /*------------------------------------------------------------------------- * local prototypes @@ -146,7 +146,7 @@ static int not_comparable; static hsize_t diff_region(hid_t obj1_id, hid_t obj2_id,hid_t region1_id, hid_t region2_id, diff_opt_t *options); static hbool_t all_zero(const void *_mem, size_t size); static int ull2float(unsigned long long ull_value, float *f_value); -static hsize_t character_compare(unsigned char *mem1,unsigned char *mem2,hsize_t i,unsigned u,int rank,hsize_t *dims,hsize_t *acc,hsize_t *pos,diff_opt_t *options,const char *obj1,const char *obj2,int *ph); +static hsize_t character_compare(char *mem1,char *mem2,hsize_t i,unsigned u,int rank,hsize_t *dims,hsize_t *acc,hsize_t *pos,diff_opt_t *options,const char *obj1,const char *obj2,int *ph); static hsize_t character_compare_opt(unsigned char *mem1,unsigned char *mem2,hsize_t i,int rank,hsize_t *dims,hsize_t *acc,hsize_t *pos,diff_opt_t *options,const char *obj1,const char *obj2,int *ph); static hbool_t equal_float(float value, float expected, diff_opt_t *options); static hbool_t equal_double(double value, double expected, diff_opt_t *options); @@ -157,6 +157,179 @@ static int print_data(diff_opt_t *options); static void print_pos(int *ph,int pp,hsize_t curr_pos,hsize_t *acc,hsize_t *pos,int rank,hsize_t *dims,const char *obj1,const char *obj2 ); static void print_char_pos(int *ph,int pp,hsize_t curr_pos,unsigned u,hsize_t *acc,hsize_t *pos,int rank,hsize_t *dims,const char *obj1,const char *obj2 ); static void h5diff_print_char(char ch); +static hsize_t diff_datum(void *_mem1, + void *_mem2, + hid_t m_type, + hsize_t i, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + hid_t container1_id, + hid_t container2_id, /*where the reference came from*/ + int *ph, /*print header */ + mcomp_t *members); /*compound members */ +static hsize_t diff_float(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); +static hsize_t diff_double(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); +#if H5_SIZEOF_LONG_DOUBLE !=0 +static hsize_t diff_ldouble(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); +#endif +static hsize_t diff_schar(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); +static hsize_t diff_uchar(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); +static hsize_t diff_short(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); +static hsize_t diff_ushort(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); +static hsize_t diff_int(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); +static hsize_t diff_uint(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); +static hsize_t diff_long(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); +static hsize_t diff_ulong(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); +static hsize_t diff_llong(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); +static hsize_t diff_ullong(unsigned char *mem1, + unsigned char *mem2, + hsize_t nelmts, + hsize_t hyper_start, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + int *ph); /*------------------------------------------------------------------------- @@ -180,7 +353,7 @@ typedef enum dtype_t } dtype_t; #endif -static int my_isnan(dtype_t type, void *val); +static hbool_t my_isnan(dtype_t type, void *val); /*------------------------------------------------------------------------- * XCAO, 11/10/2010 @@ -259,6 +432,9 @@ hsize_t diff_array( void *_mem1, switch (type_class) { + case H5T_NO_CLASS: + case H5T_TIME: + case H5T_NCLASSES: default: HDassert(0); break; @@ -385,21 +561,21 @@ hsize_t diff_array( void *_mem1, * Dereference the object and compare the type (basic object type). *------------------------------------------------------------------------- */ -hsize_t diff_datum(void *_mem1, - void *_mem2, - hid_t m_type, - hsize_t i, - int rank, - hsize_t *dims, - hsize_t *acc, - hsize_t *pos, - diff_opt_t *options, - const char *obj1, - const char *obj2, - hid_t container1_id, - hid_t container2_id, /*where the reference came from*/ - int *ph, /*print header */ - mcomp_t *members) /*compound members */ +static hsize_t diff_datum(void *_mem1, + void *_mem2, + hid_t m_type, + hsize_t i, + int rank, + hsize_t *dims, + hsize_t *acc, + hsize_t *pos, + diff_opt_t *options, + const char *obj1, + const char *obj2, + hid_t container1_id, + hid_t container2_id, /*where the reference came from*/ + int *ph, /*print header */ + mcomp_t *members) /*compound members */ { unsigned char *mem1 = (unsigned char*)_mem1; unsigned char *mem2 = (unsigned char*)_mem2; @@ -409,19 +585,19 @@ hsize_t diff_datum(void *_mem1, H5T_sign_t type_sign; H5T_class_t type_class; size_t offset; - int nmembs; - int j; + unsigned nmembs; + unsigned j; hsize_t nelmts; size_t size=0; - int iszero1; - int iszero2; + hbool_t iszero1; + hbool_t iszero2; hid_t obj1_id; hid_t obj2_id; hsize_t nfound=0; /* differences found */ int ret=0; /* check return error */ float f1, f2; double per; - int both_zero; + hbool_t both_zero; type_size = H5Tget_size( m_type ); type_class = H5Tget_class(m_type); @@ -439,10 +615,10 @@ hsize_t diff_datum(void *_mem1, switch (H5Tget_class(m_type)) { - default: - HDassert(0); - break; + case H5T_NO_CLASS: case H5T_TIME: + case H5T_NCLASSES: + default: HDassert(0); break; @@ -461,8 +637,8 @@ hsize_t diff_datum(void *_mem1, memb_type = members->ids[j]; nfound+=diff_datum( - mem1+offset, - mem2+offset, + mem1 + offset, + mem2 + offset, memb_type, i, rank, @@ -505,10 +681,10 @@ hsize_t diff_datum(void *_mem1, else { /* Get pointer to first string */ - s1 = mem1; + s1 = (char *)mem1; size1 = H5Tget_size(m_type); /* Get pointer to second string */ - s2 = mem2; + s2 = (char *)mem2; size2 = H5Tget_size(m_type); } @@ -631,11 +807,11 @@ hsize_t diff_datum(void *_mem1, */ err1 = H5Tenum_nameof(m_type, mem1, enum_name1, sizeof enum_name1); if(err1 < 0) - strcpy(enum_name1, "**INVALID VALUE**"); + HDsnprintf(enum_name1, sizeof(enum_name1), "**INVALID VALUE**"); err2 = H5Tenum_nameof(m_type, mem2, enum_name2, sizeof enum_name2); if(err2 < 0) - strcpy(enum_name2, "**INVALID VALUE**"); + HDsnprintf(enum_name2, sizeof(enum_name2), "**INVALID VALUE**"); if(err1 < 0 || err2 < 0) { @@ -699,7 +875,8 @@ hsize_t diff_datum(void *_mem1, { hsize_t adims[H5S_MAX_RANK]; - hsize_t ndims; + int ndims; + /* get the array's base datatype for each element */ memb_type = H5Tget_super(m_type); size = H5Tget_size(memb_type); @@ -708,7 +885,7 @@ hsize_t diff_datum(void *_mem1, HDassert(ndims >= 1 && ndims <= H5S_MAX_RANK); /* calculate the number of array elements */ - for (u = 0, nelmts = 1; u <ndims; u++) + for (u = 0, nelmts = 1; u < (unsigned)ndims; u++) nelmts *= adims[u]; for (u = 0; u < nelmts; u++) { @@ -858,22 +1035,22 @@ hsize_t diff_datum(void *_mem1, /* get the number of sequence elements */ nelmts = ((hvl_t *)mem1)->len; - for (j = 0; j < (int)nelmts; j++) - nfound+=diff_datum( - ((char *)(((hvl_t *)mem1)->p)) + j * size, - ((char *)(((hvl_t *)mem2)->p)) + j * size, /* offset */ - memb_type, - i, /* index position */ - rank, - dims, - acc, - pos, - options, - obj1, - obj2, - container1_id, - container2_id, - ph, members); + for (j = 0; j < nelmts; j++) + nfound += diff_datum( + ((char *)(((hvl_t *)mem1)->p)) + j * size, + ((char *)(((hvl_t *)mem2)->p)) + j * size, /* offset */ + memb_type, + i, /* index position */ + rank, + dims, + acc, + pos, + options, + obj1, + obj2, + container1_id, + container2_id, + ph, members); H5Tclose(memb_type); @@ -1418,7 +1595,7 @@ hsize_t diff_datum(void *_mem1, { print_pos(ph,1,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(I_FORMAT_P_NOTCOMP,temp1_uint,temp2_uint,PDIFF(temp1_uint,temp2_uint)); + parallel_print(UI_FORMAT_P_NOTCOMP,temp1_uint,temp2_uint,PDIFF(temp1_uint,temp2_uint)); } nfound++; } @@ -1431,7 +1608,7 @@ hsize_t diff_datum(void *_mem1, { print_pos(ph,1,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(I_FORMAT_P,temp1_uint,temp2_uint,PDIFF(temp1_uint,temp2_uint),per); + parallel_print(UI_FORMAT_P,temp1_uint,temp2_uint,PDIFF(temp1_uint,temp2_uint),per); } nfound++; } @@ -1447,7 +1624,7 @@ hsize_t diff_datum(void *_mem1, { print_pos(ph,1,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(I_FORMAT_P_NOTCOMP,temp1_uint,temp2_uint,PDIFF(temp1_uint,temp2_uint)); + parallel_print(UI_FORMAT_P_NOTCOMP,temp1_uint,temp2_uint,PDIFF(temp1_uint,temp2_uint)); } nfound++; } @@ -1460,7 +1637,7 @@ hsize_t diff_datum(void *_mem1, { print_pos(ph,1,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(I_FORMAT_P,temp1_uint,temp2_uint,PDIFF(temp1_uint,temp2_uint),per); + parallel_print(UI_FORMAT_P,temp1_uint,temp2_uint,PDIFF(temp1_uint,temp2_uint),per); } nfound++; } @@ -1901,8 +2078,8 @@ hsize_t diff_datum(void *_mem1, { float temp1_float; float temp2_float; - int isnan1=0; - int isnan2=0; + hbool_t isnan1 = FALSE; + hbool_t isnan2 = FALSE; HDassert(type_size==sizeof(float)); @@ -1930,29 +2107,29 @@ hsize_t diff_datum(void *_mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { - if (ABS(temp1_float-temp2_float) > options->delta) + if (ABS(temp1_float-temp2_float) > (float)options->delta) { if ( print_data(options) ) { print_pos(ph,0,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT,temp1_float,temp2_float,ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT,(double)temp1_float,(double)temp2_float, (double)ABS(temp1_float - temp2_float)); } nfound++; } } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { print_pos(ph,0,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT,temp1_float,temp2_float,ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT, (double)temp1_float, (double)temp2_float, (double)ABS(temp1_float - temp2_float)); } nfound++; @@ -1976,7 +2153,7 @@ hsize_t diff_datum(void *_mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { PER(temp1_float,temp2_float); @@ -1987,35 +2164,35 @@ hsize_t diff_datum(void *_mem1, { print_pos(ph,1,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT_P_NOTCOMP,temp1_float,temp2_float,ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT_P_NOTCOMP, (double)temp1_float, (double)temp2_float, (double)ABS(temp1_float - temp2_float)); } nfound++; } else - if ( per > options->percent && ABS(temp1_float-temp2_float) > options->delta ) + if ( per > options->percent && (double)ABS(temp1_float-temp2_float) > options->delta ) { if ( print_data(options) ) { print_pos(ph,1,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT_P,temp1_float,temp2_float, - ABS(temp1_float-temp2_float), - ABS(1-temp2_float/temp1_float)); + parallel_print(F_FORMAT_P, (double)temp1_float, (double)temp2_float, + (double)ABS(temp1_float - temp2_float), + (double)ABS(1 - temp2_float / temp1_float)); } nfound++; } } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { print_pos(ph,0,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT,temp1_float,temp2_float,ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT, (double)temp1_float, (double)temp2_float, (double)ABS(temp1_float - temp2_float)); } nfound++; @@ -2041,7 +2218,7 @@ hsize_t diff_datum(void *_mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { PER(temp1_float,temp2_float); @@ -2052,8 +2229,8 @@ hsize_t diff_datum(void *_mem1, { print_pos(ph,1,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT_P_NOTCOMP,temp1_float,temp2_float, - ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT_P_NOTCOMP, (double)temp1_float, (double)temp2_float, + (double)ABS(temp1_float - temp2_float)); } nfound++; } @@ -2066,22 +2243,22 @@ hsize_t diff_datum(void *_mem1, { print_pos(ph,1,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT_P,temp1_float,temp2_float, - ABS(temp1_float-temp2_float), - ABS(1-temp2_float/temp1_float)); + parallel_print(F_FORMAT_P, (double)temp1_float, (double)temp2_float, + (double)ABS(temp1_float - temp2_float), + (double)ABS(1 - temp2_float / temp1_float)); } nfound++; } } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { print_pos(ph,0,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT,temp1_float,temp2_float,ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT, (double)temp1_float, (double)temp2_float, (double)ABS(temp1_float - temp2_float)); } nfound++; @@ -2099,7 +2276,7 @@ hsize_t diff_datum(void *_mem1, { print_pos(ph,0,i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT,temp1_float,temp2_float,ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT, (double)temp1_float, (double)temp2_float, (double)ABS(temp1_float - temp2_float)); } nfound++; } @@ -2114,8 +2291,8 @@ hsize_t diff_datum(void *_mem1, { double temp1_double; double temp2_double; - int isnan1=0; - int isnan2=0; + hbool_t isnan1 = FALSE; + hbool_t isnan2 = FALSE; HDassert(type_size==sizeof(double)); @@ -2141,7 +2318,7 @@ hsize_t diff_datum(void *_mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { if (ABS(temp1_double-temp2_double) > options->delta) @@ -2157,7 +2334,7 @@ hsize_t diff_datum(void *_mem1, } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { @@ -2188,7 +2365,7 @@ hsize_t diff_datum(void *_mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { PER(temp1_double,temp2_double); @@ -2222,7 +2399,7 @@ hsize_t diff_datum(void *_mem1, } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { @@ -2253,7 +2430,7 @@ hsize_t diff_datum(void *_mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { PER(temp1_double,temp2_double); @@ -2288,7 +2465,7 @@ hsize_t diff_datum(void *_mem1, } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { @@ -2328,8 +2505,8 @@ hsize_t diff_datum(void *_mem1, { long double temp1_double; long double temp2_double; - int isnan1=0; - int isnan2=0; + hbool_t isnan1 = FALSE; + hbool_t isnan2 = FALSE; HDassert(type_size==sizeof(long double)); @@ -2357,7 +2534,7 @@ hsize_t diff_datum(void *_mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { if (ABS(temp1_double-temp2_double) > options->delta) @@ -2372,7 +2549,7 @@ hsize_t diff_datum(void *_mem1, } } /* NaN */ /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { @@ -2402,7 +2579,7 @@ hsize_t diff_datum(void *_mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { PER(temp1_double,temp2_double); @@ -2436,7 +2613,7 @@ hsize_t diff_datum(void *_mem1, } /* NaN */ /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { @@ -2466,7 +2643,7 @@ hsize_t diff_datum(void *_mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { PER(temp1_double,temp2_double); @@ -2501,7 +2678,7 @@ hsize_t diff_datum(void *_mem1, } /* NaN */ /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { @@ -2667,14 +2844,15 @@ hsize_t diff_region(hid_t obj1_id, *------------------------------------------------------------------------- */ if(nblocks1 > 0) { - alloc_size = nblocks1 * ndims1 * 2 * sizeof(ptdata1[0]); + HDassert(ndims1 > 0); + alloc_size = (hsize_t)nblocks1 * (unsigned)ndims1 * 2 * sizeof(ptdata1[0]); HDassert(alloc_size == (hsize_t)((size_t)alloc_size)); /*check for overflow*/ - ptdata1 = HDmalloc((size_t)alloc_size); + ptdata1 = (hsize_t *)HDmalloc((size_t)alloc_size); H5_CHECK_OVERFLOW(nblocks1, hssize_t, hsize_t); H5Sget_select_hyper_blocklist(region1_id, (hsize_t)0, (hsize_t)nblocks1, ptdata1); - ptdata2 = HDmalloc((size_t)alloc_size); + ptdata2 = (hsize_t *)HDmalloc((size_t)alloc_size); H5_CHECK_OVERFLOW(nblocks2, hssize_t, hsize_t); H5Sget_select_hyper_blocklist(region2_id, (hsize_t)0, (hsize_t)nblocks2, ptdata2); @@ -2722,14 +2900,14 @@ hsize_t diff_region(hid_t obj1_id, *------------------------------------------------------------------------- */ if(npoints1 > 0) { - alloc_size = npoints1 * ndims1 * sizeof(ptdata1[0]); + alloc_size = (hsize_t)npoints1 * (unsigned)ndims1 * sizeof(ptdata1[0]); HDassert(alloc_size == (hsize_t)((size_t)alloc_size)); /*check for overflow*/ - ptdata1 = HDmalloc((size_t)alloc_size); + ptdata1 = (hsize_t *)HDmalloc((size_t)alloc_size); H5_CHECK_OVERFLOW(npoints1,hssize_t,hsize_t); H5Sget_select_elem_pointlist(region1_id, (hsize_t)0, (hsize_t)npoints1, ptdata1); - ptdata2 = HDmalloc((size_t)alloc_size); + ptdata2 = (hsize_t *)HDmalloc((size_t)alloc_size); H5_CHECK_OVERFLOW(npoints1,hssize_t,hsize_t); H5Sget_select_elem_pointlist(region2_id, (hsize_t)0, (hsize_t)npoints2, ptdata2); @@ -2786,8 +2964,8 @@ hsize_t diff_region(hid_t obj1_id, HDfree(ptdata2); } - nfound_b = nfound_b/ndims1; - nfound_p = nfound_p/ndims1; + nfound_b = nfound_b / (unsigned)ndims1; + nfound_p = nfound_p / (unsigned)ndims1; return (nfound_p + nfound_b); } @@ -2803,8 +2981,8 @@ hsize_t diff_region(hid_t obj1_id, */ static -hsize_t character_compare(unsigned char *mem1, - unsigned char *mem2, +hsize_t character_compare(char *mem1, + char *mem2, hsize_t i, unsigned u, int rank, @@ -2817,8 +2995,8 @@ hsize_t character_compare(unsigned char *mem1, int *ph) { hsize_t nfound=0; /* differences found */ - unsigned char temp1_uchar; - unsigned char temp2_uchar; + char temp1_uchar; + char temp2_uchar; HDmemcpy(&temp1_uchar, mem1, sizeof(unsigned char)); HDmemcpy(&temp2_uchar, mem2, sizeof(unsigned char)); @@ -2851,7 +3029,7 @@ hsize_t character_compare(unsigned char *mem1, *------------------------------------------------------------------------- */ -hsize_t character_compare_opt(unsigned char *mem1, +static hsize_t character_compare_opt(unsigned char *mem1, unsigned char *mem2, hsize_t i, int rank, @@ -2867,7 +3045,7 @@ hsize_t character_compare_opt(unsigned char *mem1, unsigned char temp1_uchar; unsigned char temp2_uchar; double per; - int both_zero; + hbool_t both_zero; HDmemcpy(&temp1_uchar, mem1, sizeof(unsigned char)); HDmemcpy(&temp2_uchar, mem2, sizeof(unsigned char)); @@ -2942,7 +3120,7 @@ hsize_t character_compare_opt(unsigned char *mem1, * *------------------------------------------------------------------------- */ -hsize_t diff_float(unsigned char *mem1, +static hsize_t diff_float(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -2961,9 +3139,9 @@ hsize_t diff_float(unsigned char *mem1, float temp2_float; hsize_t i; double per; - int both_zero; - int isnan1=0; - int isnan2=0; + hbool_t both_zero; + hbool_t isnan1 = FALSE; + hbool_t isnan2 = FALSE; /*------------------------------------------------------------------------- @@ -2989,27 +3167,27 @@ hsize_t diff_float(unsigned char *mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { - if (ABS(temp1_float-temp2_float) > options->delta) + if ((double)ABS(temp1_float-temp2_float) > options->delta) { if ( print_data(options) ) { print_pos(ph,0,hyper_start+i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT,temp1_float,temp2_float,ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT, (double)temp1_float, (double)temp2_float, (double)ABS(temp1_float - temp2_float)); } nfound++; } } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { print_pos(ph,0,hyper_start+i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT,temp1_float,temp2_float,ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT, (double)temp1_float, (double)temp2_float, (double)ABS(temp1_float - temp2_float)); } nfound++; @@ -3042,7 +3220,7 @@ hsize_t diff_float(unsigned char *mem1, isnan2 = my_isnan(FLT_FLOAT,&temp2_float); } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( (!isnan1 && !isnan2)) { PER(temp1_float,temp2_float); @@ -3053,8 +3231,8 @@ hsize_t diff_float(unsigned char *mem1, { print_pos(ph,1,hyper_start+i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT_P_NOTCOMP,temp1_float,temp2_float, - ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT_P_NOTCOMP, (double)temp1_float, (double)temp2_float, + (double)ABS(temp1_float - temp2_float)); } nfound++; } @@ -3067,21 +3245,21 @@ hsize_t diff_float(unsigned char *mem1, { print_pos(ph,1,hyper_start+i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT_P,temp1_float,temp2_float, - ABS(temp1_float-temp2_float), - ABS(1-temp2_float/temp1_float)); + parallel_print(F_FORMAT_P, (double)temp1_float, (double)temp2_float, + (double)ABS(temp1_float - temp2_float), + (double)ABS(1 - temp2_float / temp1_float)); } nfound++; } } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { print_pos(ph,0,hyper_start+i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT,temp1_float,temp2_float,ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT, (double)temp1_float, (double)temp2_float, (double)ABS(temp1_float - temp2_float)); } nfound++; @@ -3116,7 +3294,7 @@ hsize_t diff_float(unsigned char *mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { PER(temp1_float,temp2_float); @@ -3127,36 +3305,36 @@ hsize_t diff_float(unsigned char *mem1, { print_pos(ph,1,hyper_start+i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT_P_NOTCOMP,temp1_float,temp2_float, - ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT_P_NOTCOMP, (double)temp1_float, (double)temp2_float, + (double)ABS(temp1_float - temp2_float)); } nfound++; } else - if ( per > options->percent && ABS(temp1_float-temp2_float) > options->delta ) + if ( per > options->percent && (double)ABS(temp1_float - temp2_float) > options->delta ) { if ( print_data(options) ) { print_pos(ph,1,hyper_start+i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT_P,temp1_float,temp2_float, - ABS(temp1_float-temp2_float), - ABS(1-temp2_float/temp1_float)); + parallel_print(F_FORMAT_P, (double)temp1_float, (double)temp2_float, + (double)ABS(temp1_float - temp2_float), + (double)ABS(1 - temp2_float / temp1_float)); } nfound++; } } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { print_pos(ph,0,hyper_start+i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT,temp1_float,temp2_float,ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT, (double)temp1_float, (double)temp2_float, (double)ABS(temp1_float - temp2_float)); } nfound++; @@ -3185,7 +3363,7 @@ hsize_t diff_float(unsigned char *mem1, { print_pos(ph,0,hyper_start+i,acc,pos,rank,dims,obj1,obj2); parallel_print(SPACES); - parallel_print(F_FORMAT,temp1_float,temp2_float,ABS(temp1_float-temp2_float)); + parallel_print(F_FORMAT, (double)temp1_float, (double)temp2_float, (double)ABS(temp1_float - temp2_float)); } nfound++; } @@ -3216,7 +3394,7 @@ hsize_t diff_float(unsigned char *mem1, * *------------------------------------------------------------------------- */ -hsize_t diff_double(unsigned char *mem1, +static hsize_t diff_double(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -3235,9 +3413,9 @@ hsize_t diff_double(unsigned char *mem1, double temp2_double; hsize_t i; double per; - int both_zero; - int isnan1=0; - int isnan2=0; + hbool_t both_zero; + hbool_t isnan1 = FALSE; + hbool_t isnan2 = FALSE; /*------------------------------------------------------------------------- * -d and !-p @@ -3262,7 +3440,7 @@ hsize_t diff_double(unsigned char *mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { if (ABS(temp1_double-temp2_double) > options->delta) { @@ -3276,7 +3454,7 @@ hsize_t diff_double(unsigned char *mem1, } } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { @@ -3315,7 +3493,7 @@ hsize_t diff_double(unsigned char *mem1, isnan2 = my_isnan(FLT_DOUBLE,&temp2_double); } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { PER(temp1_double,temp2_double); @@ -3348,7 +3526,7 @@ hsize_t diff_double(unsigned char *mem1, } } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { @@ -3389,7 +3567,7 @@ hsize_t diff_double(unsigned char *mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { PER(temp1_double,temp2_double); @@ -3423,7 +3601,7 @@ hsize_t diff_double(unsigned char *mem1, } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { @@ -3498,7 +3676,7 @@ hsize_t diff_double(unsigned char *mem1, */ #if H5_SIZEOF_LONG_DOUBLE !=0 -hsize_t diff_ldouble(unsigned char *mem1, +static hsize_t diff_ldouble(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -3517,9 +3695,9 @@ hsize_t diff_ldouble(unsigned char *mem1, long double temp2_double; hsize_t i; double per; - int both_zero; - int isnan1=0; - int isnan2=0; + hbool_t both_zero; + hbool_t isnan1 = FALSE; + hbool_t isnan2 = FALSE; /*------------------------------------------------------------------------- @@ -3545,7 +3723,7 @@ hsize_t diff_ldouble(unsigned char *mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { if (ABS(temp1_double-temp2_double) > options->delta) { @@ -3559,7 +3737,7 @@ hsize_t diff_ldouble(unsigned char *mem1, } } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { @@ -3598,7 +3776,7 @@ hsize_t diff_ldouble(unsigned char *mem1, isnan2 = my_isnan(FLT_LDOUBLE,&temp2_double); } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { PER(temp1_double,temp2_double); @@ -3631,7 +3809,7 @@ hsize_t diff_ldouble(unsigned char *mem1, } } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { @@ -3672,7 +3850,7 @@ hsize_t diff_ldouble(unsigned char *mem1, } /* both not NaN, do the comparison */ - if ( isnan1==0 && isnan2==0) + if ( !isnan1 && !isnan2) { PER(temp1_double,temp2_double); @@ -3706,7 +3884,7 @@ hsize_t diff_ldouble(unsigned char *mem1, } /* only one is NaN, assume difference */ - else if (isnan1==1 && isnan2==0 || isnan1==0 && isnan2==1) + else if ((isnan1 && !isnan2) || (!isnan1 && isnan2)) { if ( print_data(options) ) { @@ -3781,7 +3959,7 @@ hsize_t diff_ldouble(unsigned char *mem1, * *------------------------------------------------------------------------- */ -hsize_t diff_schar(unsigned char *mem1, +static hsize_t diff_schar(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -3800,7 +3978,7 @@ hsize_t diff_schar(unsigned char *mem1, char temp2_char; hsize_t i; double per; - int both_zero; + hbool_t both_zero; /* -d and !-p */ @@ -3958,7 +4136,7 @@ hsize_t diff_schar(unsigned char *mem1, * *------------------------------------------------------------------------- */ -hsize_t diff_uchar(unsigned char *mem1, +static hsize_t diff_uchar(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -3977,7 +4155,7 @@ hsize_t diff_uchar(unsigned char *mem1, unsigned char temp2_uchar; hsize_t i; double per; - int both_zero; + hbool_t both_zero; /* -d and !-p */ @@ -4134,7 +4312,7 @@ hsize_t diff_uchar(unsigned char *mem1, * *------------------------------------------------------------------------- */ -hsize_t diff_short(unsigned char *mem1, +static hsize_t diff_short(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -4153,7 +4331,7 @@ hsize_t diff_short(unsigned char *mem1, short temp2_short; hsize_t i; double per; - int both_zero; + hbool_t both_zero; /* -d and !-p */ if (options->d && !options->p) @@ -4312,7 +4490,7 @@ hsize_t diff_short(unsigned char *mem1, * *------------------------------------------------------------------------- */ -hsize_t diff_ushort(unsigned char *mem1, +static hsize_t diff_ushort(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -4331,7 +4509,7 @@ hsize_t diff_ushort(unsigned char *mem1, unsigned short temp2_ushort; hsize_t i; double per; - int both_zero; + hbool_t both_zero; /* -d and !-p */ if (options->d && !options->p) @@ -4491,7 +4669,7 @@ hsize_t diff_ushort(unsigned char *mem1, * *------------------------------------------------------------------------- */ -hsize_t diff_int(unsigned char *mem1, +static hsize_t diff_int(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -4510,7 +4688,7 @@ hsize_t diff_int(unsigned char *mem1, int temp2_int; hsize_t i; double per; - int both_zero; + hbool_t both_zero; /* -d and !-p */ if (options->d && !options->p) @@ -4670,7 +4848,7 @@ hsize_t diff_int(unsigned char *mem1, * *------------------------------------------------------------------------- */ -hsize_t diff_uint(unsigned char *mem1, +static hsize_t diff_uint(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -4689,7 +4867,7 @@ hsize_t diff_uint(unsigned char *mem1, unsigned int temp2_uint; hsize_t i; double per; - int both_zero; + hbool_t both_zero; /* -d and !-p */ if (options->d && !options->p) @@ -4847,7 +5025,7 @@ hsize_t diff_uint(unsigned char *mem1, * *------------------------------------------------------------------------- */ -hsize_t diff_long(unsigned char *mem1, +static hsize_t diff_long(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -4866,7 +5044,7 @@ hsize_t diff_long(unsigned char *mem1, long temp2_long; hsize_t i; double per; - int both_zero; + hbool_t both_zero; /* -d and !-p */ if (options->d && !options->p) @@ -5030,7 +5208,7 @@ hsize_t diff_long(unsigned char *mem1, * *------------------------------------------------------------------------- */ -hsize_t diff_ulong(unsigned char *mem1, +static hsize_t diff_ulong(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -5049,7 +5227,7 @@ hsize_t diff_ulong(unsigned char *mem1, unsigned long temp2_ulong; hsize_t i; double per; - int both_zero; + hbool_t both_zero; /* -d and !-p */ @@ -5213,7 +5391,7 @@ hsize_t diff_ulong(unsigned char *mem1, * *------------------------------------------------------------------------- */ -hsize_t diff_llong(unsigned char *mem1, +static hsize_t diff_llong(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -5232,7 +5410,7 @@ hsize_t diff_llong(unsigned char *mem1, long long temp2_llong; hsize_t i; double per; - int both_zero; + hbool_t both_zero; /* -d and !-p */ if (options->d && !options->p) @@ -5386,7 +5564,7 @@ hsize_t diff_llong(unsigned char *mem1, * *------------------------------------------------------------------------- */ -hsize_t diff_ullong(unsigned char *mem1, +static hsize_t diff_ullong(unsigned char *mem1, unsigned char *mem2, hsize_t nelmts, hsize_t hyper_start, @@ -5406,7 +5584,7 @@ hsize_t diff_ullong(unsigned char *mem1, hsize_t i; float f1, f2; double per; - int both_zero; + hbool_t both_zero; /* -d and !-p */ if (options->d && !options->p) @@ -5627,8 +5805,8 @@ hbool_t equal_double(double value, double expected, diff_opt_t *options) * detect NaNs *------------------------------------------------------------------------- */ - int isnan1 = my_isnan(FLT_DOUBLE,&value); - int isnan2 = my_isnan(FLT_DOUBLE,&expected); + hbool_t isnan1 = my_isnan(FLT_DOUBLE,&value); + hbool_t isnan2 = my_isnan(FLT_DOUBLE,&expected); /*------------------------------------------------------------------------- * we consider NaN == NaN to be true @@ -5680,8 +5858,8 @@ hbool_t equal_ldouble(long double value, long double expected, diff_opt_t *optio * detect NaNs *------------------------------------------------------------------------- */ - int isnan1 = my_isnan(FLT_LDOUBLE,&value); - int isnan2 = my_isnan(FLT_LDOUBLE,&expected); + hbool_t isnan1 = my_isnan(FLT_LDOUBLE,&value); + hbool_t isnan2 = my_isnan(FLT_LDOUBLE,&expected); /*------------------------------------------------------------------------- * we consider NaN == NaN to be true @@ -5737,8 +5915,8 @@ hbool_t equal_float(float value, float expected, diff_opt_t *options) * detect NaNs *------------------------------------------------------------------------- */ - int isnan1 = my_isnan(FLT_FLOAT,&value); - int isnan2 = my_isnan(FLT_FLOAT,&expected); + hbool_t isnan1 = my_isnan(FLT_FLOAT,&value); + hbool_t isnan2 = my_isnan(FLT_FLOAT,&expected); /*------------------------------------------------------------------------- * we consider NaN == NaN to be true @@ -5789,39 +5967,38 @@ hbool_t equal_float(float value, float expected, diff_opt_t *options) * *------------------------------------------------------------------------- */ -static int +static hbool_t my_isnan(dtype_t type, void *val) { - int retval = 0; + hbool_t retval = FALSE; char s[256]; if (FLT_FLOAT==type) { float x; + HDmemcpy(&x, val, sizeof(float)); retval = (x!=x); - - - } else if (FLT_DOUBLE==type) { double x; + HDmemcpy(&x, val, sizeof(double)); retval = (x!=x); - -#if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE && H5_SIZEOF_LONG_DOUBLE!=0 } +#if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE && H5_SIZEOF_LONG_DOUBLE!=0 else if (FLT_LDOUBLE==type) { long double x; + HDmemcpy(&x, val, sizeof(long double)); retval = (x!=x); -#endif } +#endif else { - return 0; + return FALSE; } /* @@ -5833,44 +6010,39 @@ my_isnan(dtype_t type, void *val) if (FLT_FLOAT==type) { float x; - HDmemcpy(&x, val, sizeof(float)); - sprintf(s, "%g", x); - + HDmemcpy(&x, val, sizeof(float)); + HDsnprintf(s, sizeof(s), "%g", (double)x); } else if (FLT_DOUBLE==type) { double x; + HDmemcpy(&x, val, sizeof(double)); - sprintf(s, "%g", x); -#if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE && H5_SIZEOF_LONG_DOUBLE!=0 + HDsnprintf(s, sizeof(s), "%g", x); } +#if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE && H5_SIZEOF_LONG_DOUBLE!=0 else if (FLT_LDOUBLE==type) { long double x; + HDmemcpy(&x, val, sizeof(long double)); - sprintf(s, "%Lg", x); -#endif + HDsnprintf(s, sizeof(s), "%Lg", x); } +#endif else { - return 0; + return FALSE; } - if ( HDstrstr(s, "NaN") || HDstrstr(s, "NAN") || HDstrstr(s, "nan") || HDstrstr(s, "-1.#IND") /* WIN32 */ ) { - - retval = 1; + retval = TRUE; } - - - - } #ifdef H5_VMS @@ -5881,15 +6053,17 @@ my_isnan(dtype_t type, void *val) if (FLT_FLOAT==type) { float x; + HDmemcpy(&x, val, sizeof(float)); retval = (x==FLT_MAX || x==-FLT_MAX); } else if (FLT_DOUBLE==type) { double x; + HDmemcpy(&x, val, sizeof(double)); retval = (x==DBL_MAX || x==-DBL_MAX); } else { - return 0; + return FALSE; } } #endif /*H5_VMS*/ @@ -5898,9 +6072,6 @@ my_isnan(dtype_t type, void *val) } - - - /*------------------------------------------------------------------------- * * Local functions @@ -6119,8 +6290,8 @@ static void h5diff_print_char(char ch) */ static void get_member_types(hid_t tid, mcomp_t *members) { - int i; int tclass; + unsigned u; if (tid <=0 || !members) return; @@ -6134,23 +6305,24 @@ static void get_member_types(hid_t tid, mcomp_t *members) } else if (tclass == H5T_COMPOUND) { - members->n = H5Tget_nmembers( tid ); - if (members->n <=0) + int nmembs; + + nmembs = H5Tget_nmembers(tid); + if(nmembs <= 0) return; + members->n = (unsigned)nmembs; - members->ids = HDcalloc(members->n, sizeof(hid_t)); - members->flags = HDcalloc(members->n, sizeof(unsigned char)); - members->offsets = HDcalloc(members->n, sizeof(size_t)); - members->m = HDcalloc(members->n, sizeof(mcomp_t *)); + members->ids = (hid_t *)HDcalloc(members->n, sizeof(hid_t)); + members->offsets = (size_t *)HDcalloc(members->n, sizeof(size_t)); + members->m = (mcomp_t **)HDcalloc(members->n, sizeof(mcomp_t *)); - for (i=0; i< members->n; i++) + for(u = 0; u < members->n; u++) { - members->ids[i] = H5Tget_member_type( tid, i ); - members->flags[i] = H5Tis_variable_str( members->ids[i] ); - members->offsets[i] = H5Tget_member_offset( tid, i ); - members->m[i] = (mcomp_t *)HDmalloc(sizeof(mcomp_t)); - HDmemset(members->m[i], 0, sizeof(mcomp_t)); - get_member_types(members->ids[i], members->m[i]); + members->ids[u] = H5Tget_member_type( tid, u ); + members->offsets[u] = H5Tget_member_offset( tid, u ); + members->m[u] = (mcomp_t *)HDmalloc(sizeof(mcomp_t)); + HDmemset(members->m[u], 0, sizeof(mcomp_t)); + get_member_types(members->ids[u], members->m[u]); } } @@ -6166,24 +6338,23 @@ static void get_member_types(hid_t tid, mcomp_t *members) */ static void close_member_types(mcomp_t *members) { - int i; + unsigned u; if (!members || members->n<=0 || !members->ids) return; - for (i=0; i<members->n; i++) + for(u = 0; u < members->n; u++) { - if (members->m[i]) + if(members->m[u]) { - close_member_types(members->m[i]); - HDfree(members->m[i]); + close_member_types(members->m[u]); + HDfree(members->m[u]); } - H5Tclose(members->ids[i]); + H5Tclose(members->ids[u]); } - HDfree (members->m); - HDfree (members->ids); - HDfree (members->flags); - HDfree (members->offsets); + HDfree(members->m); + HDfree(members->ids); + HDfree(members->offsets); } diff --git a/tools/lib/h5diff_attr.c b/tools/lib/h5diff_attr.c index 4899200..ef1d761 100644 --- a/tools/lib/h5diff_attr.c +++ b/tools/lib/h5diff_attr.c @@ -108,17 +108,17 @@ static void table_attrs_free( table_attrs_t *table ) *------------------------------------------------------------------------*/ static void table_attr_mark_exist(unsigned *exist, char *name, table_attrs_t *table) { - unsigned int new; + size_t new_val; if(table->nattrs == table->size) { table->size = MAX(1, table->size * 2); table->attrs = (match_attr_t *)HDrealloc(table->attrs, table->size * sizeof(match_attr_t)); } /* end if */ - new = table->nattrs++; - table->attrs[new].exist[0] = exist[0]; - table->attrs[new].exist[1] = exist[1]; - table->attrs[new].name = (char *)HDstrdup(name); + new_val = table->nattrs++; + table->attrs[new_val].exist[0] = exist[0]; + table->attrs[new_val].exist[1] = exist[1]; + table->attrs[new_val].name = (char *)HDstrdup(name); } /*------------------------------------------------------------------------- @@ -459,8 +459,8 @@ hsize_t diff_attr(hid_t loc1_id, goto error; /* format output string */ - sprintf(np1,"%s of <%s>",name1,path1); - sprintf(np2,"%s of <%s>",name2,path2); + HDsnprintf(np1, sizeof(np1), "%s of <%s>", name1, path1); + HDsnprintf(np2, sizeof(np1), "%s of <%s>", name2, path2); /*--------------------------------------------------------------------- * array compare diff --git a/tools/lib/h5tools_utils.h b/tools/lib/h5tools_utils.h index 10c643d..3285278 100644 --- a/tools/lib/h5tools_utils.h +++ b/tools/lib/h5tools_utils.h @@ -159,7 +159,7 @@ typedef struct { /* obtain link info from H5tools_get_symlink_info() */ typedef struct { H5O_type_t trg_type; /* OUT: target type */ - const char *trg_path; /* OUT: target obj path. This must be freed + char *trg_path; /* OUT: target obj path. This must be freed * when used with H5tools_get_symlink_info() */ haddr_t objno; /* OUT: target object address */ unsigned long fileno; /* OUT: File number that target object is located in */ |