summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2004-10-10 19:22:03 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2004-10-10 19:22:03 (GMT)
commite1c1f5cc1543fccb47e46cc85531a6a4646e0fad (patch)
tree71394ddfeac675f0143fb788ef8307260548b2c3
parent166580844b2cd4fe36eded33d060e1ab6750e7a6 (diff)
downloadhdf5-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.c6
-rw-r--r--test/tarray.c6
-rw-r--r--tools/lib/h5tools.c17
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,