diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2004-10-10 19:22:03 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2004-10-10 19:22:03 (GMT) |
commit | e1c1f5cc1543fccb47e46cc85531a6a4646e0fad (patch) | |
tree | 71394ddfeac675f0143fb788ef8307260548b2c3 | |
parent | 166580844b2cd4fe36eded33d060e1ab6750e7a6 (diff) | |
download | hdf5-e1c1f5cc1543fccb47e46cc85531a6a4646e0fad.zip hdf5-e1c1f5cc1543fccb47e46cc85531a6a4646e0fad.tar.gz hdf5-e1c1f5cc1543fccb47e46cc85531a6a4646e0fad.tar.bz2 |
[svn-r9395] Purpose:
Bug fix
Description:
Correct a couple of array bounds issues exposed by the PGI compiler
Platforms tested:
Linux 2.4 (verbena) w/PGI compilers
Too minor too requie h5committest
-rw-r--r-- | test/dtypes.c | 6 | ||||
-rw-r--r-- | test/tarray.c | 6 | ||||
-rw-r--r-- | tools/lib/h5tools.c | 17 |
3 files changed, 19 insertions, 10 deletions
diff --git a/test/dtypes.c b/test/dtypes.c index 2206134..3dfb53b 100644 --- a/test/dtypes.c +++ b/test/dtypes.c @@ -2695,7 +2695,7 @@ test_named (hid_t fapl) hid_t file=-1, type=-1, space=-1, dset=-1, t2=-1, attr1=-1; herr_t status; static hsize_t ds_size[2] = {10, 20}; - hsize_t i; + hsize_t i,j; unsigned attr_data[10][20]; char filename[1024]; @@ -2751,7 +2751,9 @@ test_named (hid_t fapl) /* It should be possible to define an attribute for the named type */ if ((attr1=H5Acreate (type, "attr1", H5T_NATIVE_UCHAR, space, H5P_DEFAULT))<0) goto error; - for (i=0; i<ds_size[0]*ds_size[1]; i++) attr_data[0][i] = (int)i;/*tricky*/ + for (i=0; i<ds_size[0]; i++) + for (j=0; j<ds_size[1]; j++) + attr_data[i][j] = (int)(i*ds_size[1]+j); if (H5Awrite(attr1, H5T_NATIVE_UINT, attr_data)<0) goto error; if (H5Aclose (attr1)<0) goto error; diff --git a/test/tarray.c b/test/tarray.c index 3dd9137..ba44838 100644 --- a/test/tarray.c +++ b/test/tarray.c @@ -434,9 +434,9 @@ test_array_array_atomic(void) /* Compare data read in */ for(i=0; i<SPACE1_DIM1; i++) { - for(j=0; j<ARRAY2_DIM1; j++) { - for(k=0; k<ARRAY2_DIM2; k++) { - for(l=0; l<ARRAY2_DIM3; l++) { + for(j=0; j<ARRAY1_DIM1; j++) { + for(k=0; k<ARRAY3_DIM1; k++) { + for(l=0; l<ARRAY3_DIM2; l++) { if(wdata[i][j][k][l]!=rdata[i][j][k][l]) { TestErrPrintf("Array data information doesn't match!, wdata[%d][%d][%d][%d]=%d, rdata[%d][%d][%d][%d]=%d\n",(int)i,(int)j,(int)k,(int)l,(int)wdata[i][j][k][l],(int)i,(int)j,(int)k,(int)l,(int)rdata[i][j][k][l]); continue; diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c index 992b769..fef34df 100644 --- a/tools/lib/h5tools.c +++ b/tools/lib/h5tools.c @@ -903,14 +903,17 @@ h5tools_dump_simple_dset(FILE *stream, const h5dump_t *info, hid_t dset, ctx.p_min_idx[i] = 0; H5Sget_simple_extent_dims(f_space, total_size, NULL); - ctx.size_last_dim = (total_size[ctx.ndims - 1]); /* calculate the number of elements we're going to print */ p_nelmts = 1; - if (ctx.ndims > 0) - for (i = 0, p_nelmts = 1; i < ctx.ndims; i++) + if (ctx.ndims > 0) { + for (i = 0; i < ctx.ndims; i++) p_nelmts *= total_size[i]; + ctx.size_last_dim = (total_size[ctx.ndims - 1]); + } /* end if */ + else + ctx.size_last_dim = 0; if (p_nelmts == 0) { /* nothing to print */ @@ -1062,8 +1065,12 @@ h5tools_dump_simple_mem(FILE *stream, const h5dump_t *info, hid_t obj_id, if (nelmts == 0) return SUCCEED; /*nothing to print*/ - assert(ctx.p_max_idx[ctx.ndims - 1]==(hsize_t)((int)ctx.p_max_idx[ctx.ndims - 1])); - ctx.size_last_dim = (int)(ctx.p_max_idx[ctx.ndims - 1]); + if(ctx.ndims>0) { + assert(ctx.p_max_idx[ctx.ndims - 1]==(hsize_t)((int)ctx.p_max_idx[ctx.ndims - 1])); + ctx.size_last_dim = (int)(ctx.p_max_idx[ctx.ndims - 1]); + } /* end if */ + else + ctx.size_last_dim = 0; /* Print it */ h5tools_dump_simple_data(stream, info, obj_id, &ctx, |