diff --git a/HDF5Examples/FORTRAN/H5D/h5ex_d_extern.F90 b/HDF5Examples/FORTRAN/H5D/h5ex_d_extern.F90
index e44fdf0c2a9..d8e90103f7f 100644
--- a/HDF5Examples/FORTRAN/H5D/h5ex_d_extern.F90
+++ b/HDF5Examples/FORTRAN/H5D/h5ex_d_extern.F90
@@ -40,8 +40,8 @@ PROGRAM main
INTEGER :: i, j
! This change was introduced in the 1.8.12 release
#if H5_VERSION_GE(1,8,12)
- INTEGER(OFF_T) :: offset = 0 ! Offset, in bytes, from the beginning of the file to the
- ! location in the file where the data starts.
+ INTEGER(HADDR_T) :: offset = 0 ! Offset, in bytes, from the beginning of the file to the
+ ! location in the file where the data starts.
#else
INTEGER :: offset = 0
#endif
diff --git a/c++/src/C2Cppfunction_map.htm b/c++/src/C2Cppfunction_map.htm
index 4ea67544efe..deb0d157a0a 100644
--- a/c++/src/C2Cppfunction_map.htm
+++ b/c++/src/C2Cppfunction_map.htm
@@ -16851,7 +16851,7 @@
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
void DSetCreatPropList::setExternal(const char* name, HDoff_t offset,
+ normal'>void DSetCreatPropList::setExternal(const char* name, haddr_t offset,
hsize_t size)
void DSetCreatPropList::getExternal(unsigned idx, size_t name_size,
- char* name, HDoff_t& offset, hsize_t& size)
+ char* name, haddr_t& offset, hsize_t& size)
|
slot[u].offset + (HDoff_t)skip), SEEK_SET) < 0)
+ if (HDlseek(fd, (HDoff_t)(efl->slot[u].offset + skip), SEEK_SET) < 0)
HGOTO_ERROR(H5E_EFL, H5E_SEEKERROR, FAIL, "unable to seek in external raw data file");
#ifndef NDEBUG
tempto_read = MIN((size_t)(efl->slot[u].size - skip), (hsize_t)size);
@@ -434,7 +434,7 @@ H5D__efl_write(const H5O_efl_t *efl, const H5D_t *dset, haddr_t addr, size_t siz
else
HGOTO_ERROR(H5E_EFL, H5E_CANTOPENFILE, FAIL, "unable to open external raw data file");
} /* end if */
- if (HDlseek(fd, (HDoff_t)(efl->slot[u].offset + (HDoff_t)skip), SEEK_SET) < 0)
+ if (HDlseek(fd, (HDoff_t)(efl->slot[u].offset + skip), SEEK_SET) < 0)
HGOTO_ERROR(H5E_EFL, H5E_SEEKERROR, FAIL, "unable to seek in external raw data file");
#ifndef NDEBUG
tempto_write = MIN(efl->slot[u].size - skip, (hsize_t)size);
diff --git a/src/H5FDstdio.c b/src/H5FDstdio.c
index 9de221120ef..51b3a065b96 100644
--- a/src/H5FDstdio.c
+++ b/src/H5FDstdio.c
@@ -121,26 +121,36 @@ typedef struct H5FD_stdio_t {
/* Platform-independent names for some file-oriented functions */
+/* off_t exists on Windows, but is always a 32-bit long, even on 64-bit Windows,
+ * so on Windows we define my_off_t to be int64_t, which is equivalent to __int64,
+ * the type of the st_size field of the _stati64 struct.
+ */
+#ifdef H5_HAVE_WIN32_API
+typedef int64_t my_off_t;
+#else
+typedef off_t my_off_t;
+#endif
+
#ifdef H5_HAVE_WIN32_API
/* Windows and MinGW */
-#define file_ftell _ftelli64
+#define my_ftell _ftelli64
#else
/* Everyone else */
-#define file_ftell ftello
+#define my_ftell ftello
#endif
#if defined(H5_HAVE_WIN32_API) && !defined(H5_HAVE_MINGW)
/* Windows (but NOT MinGW) */
-#define file_fseek _fseeki64
-#define file_ftruncate _chsize_s
+#define my_fseek _fseeki64
+#define my_ftruncate _chsize_s
#else
/* Everyone else */
-#define file_fseek fseeko
-#define file_ftruncate ftruncate
+#define my_fseek fseeko
+#define my_ftruncate ftruncate
#endif
/* These macros check for overflow of various quantities. These macros
- * assume that HDoff_t is signed and haddr_t and size_t are unsigned.
+ * assume that my_off_t is signed and haddr_t and size_t are unsigned.
*
* MY_ADDR_OVERFLOW: Checks whether a file address of type `haddr_t'
* is too large to be represented by the second argument
@@ -153,12 +163,12 @@ typedef struct H5FD_stdio_t {
* which can be addressed entirely by the second
* argument of the file seek function.
*/
-#define MY_MAXADDR (((haddr_t)1 << (8 * sizeof(HDoff_t) - 1)) - 1)
+#define MY_MAXADDR (((haddr_t)1 << (8 * sizeof(my_off_t) - 1)) - 1)
#define MY_ADDR_OVERFLOW(A) (HADDR_UNDEF == (A) || ((A) & ~(haddr_t)MY_MAXADDR))
#define MY_SIZE_OVERFLOW(Z) ((Z) & ~(hsize_t)MY_MAXADDR)
#define MY_REGION_OVERFLOW(A, Z) \
(MY_ADDR_OVERFLOW(A) || MY_SIZE_OVERFLOW(Z) || HADDR_UNDEF == (A) + (Z) || \
- (HDoff_t)((A) + (Z)) < (HDoff_t)(A))
+ (my_off_t)((A) + (Z)) < (my_off_t)(A))
/* Prototypes */
static H5FD_t *H5FD_stdio_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr);
@@ -310,7 +320,7 @@ H5FD_stdio_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr
#endif /* H5_HAVE_WIN32_API */
/* Sanity check on file offsets */
- assert(sizeof(HDoff_t) >= sizeof(size_t));
+ assert(sizeof(my_off_t) >= sizeof(size_t));
/* Quiet compiler */
(void)fapl_id;
@@ -375,11 +385,11 @@ H5FD_stdio_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr
file->op = H5FD_STDIO_OP_SEEK;
file->pos = HADDR_UNDEF;
file->write_access = write_access; /* Note the write_access for later */
- if (file_fseek(file->fp, 0, SEEK_END) < 0) {
+ if (my_fseek(file->fp, 0, SEEK_END) < 0) {
file->op = H5FD_STDIO_OP_UNKNOWN;
}
else {
- HDoff_t x = file_ftell(file->fp);
+ my_off_t x = my_ftell(file->fp);
assert(x >= 0);
file->eof = (haddr_t)x;
}
@@ -765,7 +775,7 @@ H5FD_stdio_read(H5FD_t *_file, H5FD_mem_t /*UNUSED*/ type, hid_t /*UNUSED*/ dxpl
/* Seek to the correct file position. */
if (!(file->op == H5FD_STDIO_OP_READ || file->op == H5FD_STDIO_OP_SEEK) || file->pos != addr) {
- if (file_fseek(file->fp, (HDoff_t)addr, SEEK_SET) < 0) {
+ if (my_fseek(file->fp, (my_off_t)addr, SEEK_SET) < 0) {
file->op = H5FD_STDIO_OP_UNKNOWN;
file->pos = HADDR_UNDEF;
H5Epush_ret(__func__, H5E_ERR_CLS, H5E_IO, H5E_SEEKERROR, "fseek failed", -1);
@@ -856,7 +866,7 @@ H5FD_stdio_write(H5FD_t *_file, H5FD_mem_t /*UNUSED*/ type, hid_t /*UNUSED*/ dxp
/* Seek to the correct file position. */
if ((file->op != H5FD_STDIO_OP_WRITE && file->op != H5FD_STDIO_OP_SEEK) || file->pos != addr) {
- if (file_fseek(file->fp, (HDoff_t)addr, SEEK_SET) < 0) {
+ if (my_fseek(file->fp, (my_off_t)addr, SEEK_SET) < 0) {
file->op = H5FD_STDIO_OP_UNKNOWN;
file->pos = HADDR_UNDEF;
H5Epush_ret(__func__, H5E_ERR_CLS, H5E_IO, H5E_SEEKERROR, "fseek failed", -1);
@@ -1012,7 +1022,7 @@ H5FD_stdio_truncate(H5FD_t *_file, hid_t /*UNUSED*/ dxpl_id, bool /*UNUSED*/ clo
rewind(file->fp);
/* Truncate file to proper length */
- if (-1 == file_ftruncate(file->fd, (HDoff_t)file->eoa))
+ if (-1 == my_ftruncate(file->fd, (my_off_t)file->eoa))
H5Epush_ret(__func__, H5E_ERR_CLS, H5E_IO, H5E_SEEKERROR,
"unable to truncate/extend file properly", -1);
#endif /* H5_HAVE_WIN32_API */
diff --git a/src/H5Oefl.c b/src/H5Oefl.c
index ea3c8b2754d..2f913179c2d 100644
--- a/src/H5Oefl.c
+++ b/src/H5Oefl.c
@@ -145,7 +145,7 @@ H5O__efl_decode(H5F_t *f, H5O_t H5_ATTR_UNUSED *open_oh, unsigned H5_ATTR_UNUSED
for (size_t u = 0; u < mesg->nused; u++) {
- hsize_t offset = 0;
+ haddr_t offset = 0;
/* Name */
if (H5_IS_BUFFER_OVERFLOW(p, H5F_sizeof_size(f), p_end))
@@ -163,8 +163,8 @@ H5O__efl_decode(H5F_t *f, H5O_t H5_ATTR_UNUSED *open_oh, unsigned H5_ATTR_UNUSED
/* File offset */
if (H5_IS_BUFFER_OVERFLOW(p, H5F_sizeof_size(f), p_end))
HGOTO_ERROR(H5E_OHDR, H5E_OVERFLOW, NULL, "ran off end of input buffer while decoding");
- H5F_DECODE_LENGTH(f, p, offset); /* Decode into an hsize_t to avoid sign warnings */
- mesg->slot[u].offset = (HDoff_t)offset;
+ H5F_DECODE_LENGTH(f, p, offset);
+ mesg->slot[u].offset = offset;
/* Size */
if (H5_IS_BUFFER_OVERFLOW(p, H5F_sizeof_size(f), p_end))
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h
index b50f7c315be..0c3e1470553 100644
--- a/src/H5Oprivate.h
+++ b/src/H5Oprivate.h
@@ -379,7 +379,7 @@ typedef struct H5O_link_t {
typedef struct H5O_efl_entry_t {
size_t name_offset; /*offset of name within heap */
char *name; /*malloc'd name */
- HDoff_t offset; /*offset of data within file */
+ haddr_t offset; /*offset of data within file */
hsize_t size; /*size allocated within file */
} H5O_efl_entry_t;
diff --git a/src/H5Pdcpl.c b/src/H5Pdcpl.c
index 3186e11c041..78fa4605f50 100644
--- a/src/H5Pdcpl.c
+++ b/src/H5Pdcpl.c
@@ -1549,7 +1549,7 @@ H5P__dcrt_ext_file_list_dec(const void **_pp, void *_value)
enc_size = *(*pp)++;
assert(enc_size < 256);
UINT64DECODE_VAR(*pp, enc_value, enc_size);
- efl->slot[u].offset = (HDoff_t)enc_value;
+ efl->slot[u].offset = enc_value;
/* Decode size */
enc_size = *(*pp)++;
@@ -2586,7 +2586,7 @@ H5Pget_chunk_opts(hid_t plist_id, unsigned *options /*out*/)
*-------------------------------------------------------------------------
*/
herr_t
-H5Pset_external(hid_t plist_id, const char *name, HDoff_t offset, hsize_t size)
+H5Pset_external(hid_t plist_id, const char *name, haddr_t offset, hsize_t size)
{
size_t idx;
hsize_t total, tmp;
@@ -2599,8 +2599,6 @@ H5Pset_external(hid_t plist_id, const char *name, HDoff_t offset, hsize_t size)
/* Check arguments */
if (!name || !*name)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "no name given");
- if (offset < 0)
- HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "negative external file offset");
/* Get the plist structure */
if (NULL == (plist = H5P_object_verify(plist_id, H5P_DATASET_CREATE)))
@@ -2701,7 +2699,7 @@ H5Pget_external_count(hid_t plist_id)
*-------------------------------------------------------------------------
*/
herr_t
-H5Pget_external(hid_t plist_id, unsigned idx, size_t name_size, char *name /*out*/, HDoff_t *offset /*out*/,
+H5Pget_external(hid_t plist_id, unsigned idx, size_t name_size, char *name /*out*/, haddr_t *offset /*out*/,
hsize_t *size /*out*/)
{
H5O_efl_t efl;
diff --git a/src/H5Ppublic.h b/src/H5Ppublic.h
index bdb172bf8dc..a9889a78fd6 100644
--- a/src/H5Ppublic.h
+++ b/src/H5Ppublic.h
@@ -6044,13 +6044,13 @@ H5_DLL herr_t H5Pget_dset_no_attrs_hint(hid_t dcpl_id, hbool_t *minimize);
* which is a 32-bit signed long value on Windows, which limited
* the valid offset that can be returned to 2 GiB.
*
- * \version 2.0.0 \p offset parameter type changed to HDoff_t from off_t.
+ * \version 2.0.0 \p offset parameter type changed to haddr_t from off_t.
* \version 1.6.4 \p idx parameter type changed to unsigned.
* \since 1.0.0
*
*/
H5_DLL herr_t H5Pget_external(hid_t plist_id, unsigned idx, size_t name_size, char *name /*out*/,
- HDoff_t *offset /*out*/, hsize_t *size /*out*/);
+ haddr_t *offset /*out*/, hsize_t *size /*out*/);
/**
* \ingroup DCPL
*
@@ -6541,11 +6541,11 @@ H5_DLL herr_t H5Pset_dset_no_attrs_hint(hid_t dcpl_id, hbool_t minimize);
* which is a 32-bit signed long value on Windows, which limited
* the valid offset that can be set to 2 GiB.
*
- * \version 2.0.0 \p offset parameter type changed to HDoff_t from off_t.
+ * \version 2.0.0 \p offset parameter type changed to haddr_t from off_t.
* \since 1.0.0
*
*/
-H5_DLL herr_t H5Pset_external(hid_t plist_id, const char *name, HDoff_t offset, hsize_t size);
+H5_DLL herr_t H5Pset_external(hid_t plist_id, const char *name, haddr_t offset, hsize_t size);
/**
* \ingroup DCPL
*
diff --git a/src/H5private.h b/src/H5private.h
index cff6b37390c..43ea4f6b696 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -591,9 +591,19 @@ typedef double _Complex H5_double_complex;
typedef long double _Complex H5_ldouble_complex;
#endif
+/* off_t exists on Windows, but is always a 32-bit long, even on 64-bit Windows,
+ * so on Windows we define HDoff_t to be int64_t, which is equivalent to __int64,
+ * the type of the st_size field of the _stati64 struct.
+ */
+#ifdef H5_HAVE_WIN32_API
+typedef int64_t HDoff_t;
+#else
+typedef off_t HDoff_t;
+#endif
+
/* __int64 is the correct type for the st_size field of the _stati64
* struct on Windows (MSDN isn't very clear about this). POSIX systems use
- * off_t. Both of these are typedef'd to HDoff_t in H5public.h.
+ * off_t. Both of these are typedef'd to HDoff_t (above).
*/
typedef HDoff_t h5_stat_size_t;
diff --git a/src/H5public.h b/src/H5public.h
index 62e0db9764b..8e5d946fec3 100644
--- a/src/H5public.h
+++ b/src/H5public.h
@@ -300,22 +300,6 @@ typedef long long ssize_t;
*/
typedef uint64_t hsize_t;
-/* off_t exists on Windows, but is always a 32-bit long, even on 64-bit Windows,
- * so on Windows we define HDoff_t to be int64_t, which is equivalent to __int64,
- * the type of the st_size field of the _stati64 struct.
- */
-#ifdef H5_HAVE_WIN32_API
-/**
- * Platform-independent offset
- */
-typedef int64_t HDoff_t;
-#else
-/**
- * Platform-independent offset
- */
-typedef off_t HDoff_t;
-#endif
-
#ifdef H5_HAVE_PARALLEL
#define HSIZE_AS_MPI_TYPE MPI_UINT64_T
#endif
diff --git a/test/external.c b/test/external.c
index c7354f9afa4..58953b8d84d 100644
--- a/test/external.c
+++ b/test/external.c
@@ -97,7 +97,7 @@ test_non_extendible(hid_t file)
hsize_t cur_size[1] = {100}; /* data space current size */
hsize_t max_size[1] = {100}; /* data space maximum size */
int n = 0; /* number of external files */
- HDoff_t file_offset = 0; /* external file offset */
+ haddr_t file_offset = 0; /* external file offset */
hsize_t file_size = 0; /* sizeof external file segment */
haddr_t dset_addr = HADDR_UNDEF; /* address of dataset */
@@ -363,7 +363,7 @@ test_unlimited(hid_t file)
hsize_t cur_size[1] = {100}; /* data space current size */
hsize_t max_size[1] = {H5S_UNLIMITED}; /* data space maximum size */
int n; /* number of external files */
- HDoff_t file_offset; /* external file offset */
+ haddr_t file_offset; /* external file offset */
hsize_t file_size; /* sizeof external file segment */
TESTING("unlimited dataspace, unlimited external storage");
@@ -446,7 +446,7 @@ test_unlimited(hid_t file)
*-------------------------------------------------------------------------
*/
static int
-add_external_files(hid_t dcpl_id, unsigned int n_external_files, HDoff_t offset, hsize_t max_ext_size)
+add_external_files(hid_t dcpl_id, unsigned int n_external_files, haddr_t offset, hsize_t max_ext_size)
{
char exname[AEF_EXNAME_MAX_LEN + 1];
unsigned int i = 0;
@@ -704,7 +704,7 @@ test_read_file_set(hid_t fapl)
FAIL_STACK_ERROR;
for (i = 0; i < N_EXT_FILES; i++) {
snprintf(filename, sizeof(filename), "extern_%dr.raw", (int)i + 1);
- if (H5Pset_external(dcpl, filename, (HDoff_t)(i * GARBAGE_PER_FILE), (hsize_t)sizeof(part)) < 0)
+ if (H5Pset_external(dcpl, filename, (haddr_t)(i * GARBAGE_PER_FILE), (hsize_t)sizeof(part)) < 0)
FAIL_STACK_ERROR;
}
@@ -823,7 +823,7 @@ test_write_file_set(hid_t fapl)
else
size = H5F_UNLIMITED;
- if (H5Pset_external(dcpl, filename, (HDoff_t)(i * GARBAGE_PER_FILE), size) < 0)
+ if (H5Pset_external(dcpl, filename, (haddr_t)(i * GARBAGE_PER_FILE), size) < 0)
FAIL_STACK_ERROR;
} /* end for */
@@ -946,7 +946,7 @@ test_path_absolute(hid_t fapl)
if (i == 1)
snprintf(filename, sizeof(filename), "%s%sextern_%zur.raw", cwdpath + 2, H5_DIR_SEPS, i + 1);
#endif
- if (H5Pset_external(dcpl, filename, (HDoff_t)(i * GARBAGE_PER_FILE), (hsize_t)sizeof(part)) < 0)
+ if (H5Pset_external(dcpl, filename, (haddr_t)(i * GARBAGE_PER_FILE), (hsize_t)sizeof(part)) < 0)
FAIL_STACK_ERROR;
}
@@ -1036,7 +1036,7 @@ test_path_relative(hid_t fapl)
FAIL_STACK_ERROR;
for (i = 0; i < N_EXT_FILES; i++) {
snprintf(filename, sizeof(filename), "extern_%dr.raw", (int)i + 1);
- if (H5Pset_external(dcpl, filename, (HDoff_t)(i * GARBAGE_PER_FILE), (hsize_t)sizeof(part)) < 0)
+ if (H5Pset_external(dcpl, filename, (haddr_t)(i * GARBAGE_PER_FILE), (hsize_t)sizeof(part)) < 0)
FAIL_STACK_ERROR;
}
@@ -1130,7 +1130,7 @@ test_path_relative_cwd(hid_t fapl)
FAIL_STACK_ERROR;
for (i = 0; i < N_EXT_FILES; i++) {
snprintf(filename, sizeof(filename), "..%sextern_%dr.raw", H5_DIR_SEPS, (int)i + 1);
- if (H5Pset_external(dcpl, filename, (HDoff_t)(i * GARBAGE_PER_FILE), (hsize_t)sizeof(part)) < 0)
+ if (H5Pset_external(dcpl, filename, (haddr_t)(i * GARBAGE_PER_FILE), (hsize_t)sizeof(part)) < 0)
FAIL_STACK_ERROR;
}
diff --git a/test/external_env.c b/test/external_env.c
index 9e0305394e3..f6956bd5264 100644
--- a/test/external_env.c
+++ b/test/external_env.c
@@ -68,7 +68,7 @@ test_path_env(hid_t fapl)
FAIL_STACK_ERROR;
for (i = 0; i < N_EXT_FILES; i++) {
snprintf(filename, sizeof(filename), "..%sextern_env_%dr.raw", H5_DIR_SEPS, (int)i + 1);
- if (H5Pset_external(dcpl, filename, (HDoff_t)(i * GARBAGE_PER_FILE), (hsize_t)sizeof(part)) < 0)
+ if (H5Pset_external(dcpl, filename, (haddr_t)(i * GARBAGE_PER_FILE), (hsize_t)sizeof(part)) < 0)
FAIL_STACK_ERROR;
} /* end for */
diff --git a/test/set_extent.c b/test/set_extent.c
index 0127e870174..a4e7e275b07 100644
--- a/test/set_extent.c
+++ b/test/set_extent.c
@@ -1839,7 +1839,7 @@ test_external(hid_t fapl, bool use_select_io)
{
char name[256]; /*external file name */
- HDoff_t file_offset; /*external file offset */
+ haddr_t file_offset; /*external file offset */
hsize_t file_size; /*sizeof external file segment */
if (H5Pget_external(dcpl, 0, sizeof(name), name, &file_offset, &file_size) < 0)
diff --git a/tools/lib/h5tools_dump.c b/tools/lib/h5tools_dump.c
index 6c9a1cfd0ef..114ab43c7b6 100644
--- a/tools/lib/h5tools_dump.c
+++ b/tools/lib/h5tools_dump.c
@@ -3190,7 +3190,7 @@ h5tools_dump_dcpl(FILE *stream, const h5tool_format_t *info, h5tools_context_t *
H5D_layout_t stl = H5D_LAYOUT_ERROR;
size_t ncols = 80; /* available output width */
size_t cd_nelmts; /* filter client number of values */
- HDoff_t offset; /* offset of external file */
+ haddr_t offset; /* offset of external file */
char f_name[256]; /* filter name */
char name[256]; /* external or virtual file name */
hsize_t chsize[64]; /* chunk size in elements */
@@ -3342,11 +3342,7 @@ h5tools_dump_dcpl(FILE *stream, const h5tool_format_t *info, h5tools_context_t *
h5tools_str_reset(&buffer);
h5tools_str_append(&buffer, "FILENAME %s SIZE %" PRIuHSIZE, name, size);
- /* Using %lld with a cast to (long long) is probably the only portable
- * way to print off_t values. There's no real standard for off_t other
- * than it must be signed, according to POSIX.
- */
- h5tools_str_append(&buffer, " OFFSET %lld", (long long)offset);
+ h5tools_str_append(&buffer, " OFFSET %" PRIuHADDR "", offset);
h5tools_render_element(stream, info, ctx, &buffer, &curr_pos, (size_t)ncols, (hsize_t)0,
(hsize_t)0);
}
diff --git a/tools/src/h5ls/h5ls.c b/tools/src/h5ls/h5ls.c
index 992d412f368..0402c0117d6 100644
--- a/tools/src/h5ls/h5ls.c
+++ b/tools/src/h5ls/h5ls.c
@@ -1911,7 +1911,7 @@ dataset_list2(hid_t dset, const char H5_ATTR_UNUSED *name)
size_t cd_num; /* filter client data counter */
char f_name[256]; /* filter/file name */
char s[64]; /* temporary string buffer */
- HDoff_t f_offset; /* offset in external file */
+ haddr_t f_offset; /* offset in external file */
hsize_t f_size; /* bytes used in external file */
hsize_t total, used; /* total size or offset */
int ndims; /* dimensionality */
diff --git a/tools/src/misc/h5repart.c b/tools/src/misc/h5repart.c
index 4f1aa20fbf9..2766e8e8a30 100644
--- a/tools/src/misc/h5repart.c
+++ b/tools/src/misc/h5repart.c
@@ -371,7 +371,7 @@ main(int argc, char *argv[])
* needed. The first member is extended to the logical member size
* but other members might be smaller if they end with a hole.
*/
- dst_offset = dst_offset + (off_t)n;
+ dst_offset = dst_offset + (HDoff_t)n;
if (dst_is_family && dst_offset == dst_size) {
if (0 == dst_membno) {
if (HDlseek(dst, dst_size - 1, SEEK_SET) < 0) {
|