[svn-r1108] Changes since 19990225

----------------------

./INSTALL
	Added warnings and a disclaimer about GNU, DEC, Irix64, and NT
	compilers that generate incorrect machine code.

./configure.in
./src/H5private.h
	Detects and includes <sys/param.h> which is needed on FreeBSD
	before <sys/proc.h> even though we only really using anything
	from <sys/proc.h> on the DEC Alpha.

./config/irix64
	Turned off warnings for duplicate definitions from the linker
	because -lnsl on irix has the same stuff in it as -lc.

./config/irix6.x
	Split up the CC and CFLAGS settings like with irix64 so that
	compilers besides `-n32' can be used.

./bin/snapshot
	The snapshots are tagged with names like hdf5-1_1_52 which is
	similar to the way the releases are tagged (cvs doesn't allow
	dots in tags).

./test/dtypes.c
./src/H5private.h
./src/H5Tconv.c
	Fixed some alignment violations on the DEC when using high
	optimization levels. The DEC incorrectly optimizes certain
	memcpy() and memmove() calls when the source argument is not
	word aligned if the call looks like it's copying an atomic
	data type.

./test/hyperslab
	Worked around code generation bugs in the Irix64 Mongoose 7.00
	compiler by casting some `unsigned long' values to `unsigned'
	in an expression.

./src/H5Ocomp.c
	Fixed a place where %d was used to print a size_t.
This commit is contained in:
Robb Matzke 1999-02-26 14:58:14 -05:00
parent efb18f8785
commit 912c5a0874
16 changed files with 2050 additions and 1879 deletions

36
INSTALL
View File

@ -18,9 +18,39 @@ can do the following:
$ make install # Optional
Note:
For the users of the Intel TFLOPS machine, a special sequence of steps
for the install may be found in the file: INSTALL.ascired.
Note: For the users of the Intel TFLOPS machine, a special sequence of
steps for the install may be found in the file: INSTALL.ascired.
OUTPUT FROM THE FOLLOWING COMPILERS SHOULD BE EXTREMELY SUSPECT WHEN
USED TO COMPILE THE HDF5 LIBRARY, ESPECIALLY IF OPTIMIZATIONS ARE
ENABLED. IN ALL CASES, HDF5 ATTEMPTS TO WORK AROUND THE COMPILER BUGS
BUT THE HDF5 DEVELOPMENT TEAM MAKES NO GUARANTEES THAT THERE ARE OTHER
CODE GENERATION PROBLEMS.
* GNU (Intel platforms)
Versions before 2.8.1 have serious problems allocating
registers when functions contain operations on `long long'
data types. Supplying the `--disable-hsizet' switch to
configure (documented below) will prevent hdf5 from using
`long long' data types in situations that are known not to
work, but it limits the hdf5 address space to 2GB.
* DEC
The V5.2-038 compiler (and possibly others) occasionally
generates incorrect code for memcpy() calls when optimizations
are enabled, resulting in unaligned access faults. HDF5 works
around the problem by casting the second argument to `char*'.
* SGI (Irix64 6.2)
The Mongoose 7.00 compiler has serious optimization bugs and
should be upgraded to MIPSpro 7.2.1.2m. Patches are available
from SGI.
* Windows/NT
The MicroSoft Win32 5.0 compiler is unable to cast unsigned
long long values to doubles. HDF5 works around this bug by
first casting to signed long long and then to double.
=======
Step 0: Install optional third-party packages.

2
README
View File

@ -1,4 +1,4 @@
This is hdf5-1.1.52 released on Fri Feb 26 04:18:35 CST 1999
This is hdf5-1.1.53 released on Fri Feb 26 09:31:50 CST 1999
Please refer to the INSTALL file for installation instructions.
------------------------------------------------------------------------------

View File

@ -71,10 +71,11 @@ if [ "$snapshot" = "yes" ]; then
(cd ${COMPARE}/current; make distclean)
fi
# Release snapshot, update version, and commit to cvs
# Release snapshot, update version, and commit to cvs and tag
if [ "$snapshot" = "yes" ]; then
(
cd ${COMPARE}/current
cvs -Q tag hdf5-`./bin/h5vers |tr . _`
./bin/release -d $ARCHIVES $METHODS
./bin/h5vers -i
cvs -Q commit -m Snapshot

View File

@ -8,7 +8,7 @@
# The default compiler is `cc' and there is no ranlib.
if test "X-" = "X-$CC"; then
CC=cc
CC='cc -n32'
CC_BASENAME=cc
fi
RANLIB=:
@ -25,22 +25,32 @@ case "X-$CC_BASENAME" in
;;
*)
CFLAGS="$CFLAGS -ansi"
# Always turn off these compiler warnings:
# 1174: function declared but not used
# 1429: the `long long' type is not standard
# 1209: constant expressions
# 1196: __vfork() (this is an SGI config problem)
CFLAGS="$CFLAGS -woff 1174,1429,1209,1196"
# Always turn off these loader warnings:
# 47: linked module might degrade performance
# 84: a library is not used
# 85: duplicate definition preemption
# 134: duplicate weak definition preemption
CFLAGS="$CFLAGS -ansi -n32 -woff 1174,1429,1209,1196 -Wl,-woff,47 -Wl,-woff,84 -Wl,-woff,85 -Wl,-woff,134"
CFLAGS="$CFLAGS -Wl,-woff,47,-woff,84,-woff,85,-woff,134"
# Extra debugging flags
DEBUG_CFLAGS=-g
DEBUG_CPPFLAGS=
# Higher optimizations relax alignment requirements needed
# Extra production flags
# Note: higher optimizations relax alignment requirements needed.
PROD_CFLAGS=-O1
PROD_CPPFLAGS=
# Extra profiling flags
PROFILE_CFLAGS=-pg
PROFILE_CPPFLAGS=
;;

View File

@ -46,7 +46,9 @@ case "X-$CC_BASENAME" in
# (notice the peculiar syntax)
# 47: branch instructions that degrade performance on R4000
# 84: a library is not used
CFLAGS="$CFLAGS -Wl,-woff,47 -Wl,-woff,84"
# 85: duplicate definition preemption (from -lnsl)
# 134: duplicate weak definition preemption (from -lnsl)
CFLAGS="$CFLAGS -Wl,-woff,47,-woff,84,-woff,85,-woff,134"
# Extra debugging flags
DEBUG_CFLAGS="-g -fullwarn"

679
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -143,7 +143,7 @@ AC_HEADER_STDC
AC_HEADER_TIME
dnl Unix
AC_CHECK_HEADERS(sys/resource.h sys/time.h unistd.h sys/ioctl.h sys/stat.h)
AC_CHECK_HEADERS(stddef.h)
AC_CHECK_HEADERS(stddef.h sys/sysinfo.h sys/proc.h sys/param.h)
dnl Windows
AC_CHECK_HEADERS(io.h winsock.h sys/timeb.h)
@ -348,7 +348,7 @@ dnl ----------------------------------------------------------------------
dnl How do we figure out the width of a tty in characters?
dnl
AC_CHECK_FUNCS(_getvideoconfig gettextinfo GetConsoleScreenBufferInfo)
AC_CHECK_FUNCS(_scrsize ioctl compress2)
AC_CHECK_FUNCS(_scrsize ioctl compress2 setsysinfo)
AC_MSG_CHECKING(for struct videoconfig)
AC_TRY_COMPILE(,[struct videoconfig w; w.numtextcols=0;],

File diff suppressed because it is too large Load Diff

View File

@ -449,7 +449,7 @@ H5O_pline_debug (H5F_t __unused__ *f, const void *mesg, FILE *stream,
(unsigned long)(pline->filter[i].cd_nelmts));
for (j=0; j<pline->filter[i].cd_nelmts; j++) {
char field_name[32];
sprintf(field_name, "CD value %d", j);
sprintf(field_name, "CD value %lu", (unsigned long)j);
fprintf(stream, "%*s%-*s %lu\n", indent+6, "", MAX(0, fwidth-6),
field_name,
(unsigned long)(pline->filter[i].cd_values[j]));

View File

@ -305,7 +305,7 @@ static intn interface_initialize_g = 0;
if (d_mv) priv->d_aligned += nelmts; \
for (elmtno=0; elmtno<nelmts; elmtno++, DIR src, DIR dst) { \
if (s_mv) { \
memcpy(&aligned, src, sizeof(ST)); \
HDmemcpy(&aligned, src, sizeof(ST)); \
s = (ST*)&aligned; \
} else { \
s = src; \
@ -317,7 +317,7 @@ static intn interface_initialize_g = 0;
}
/* ... user-defined stuff here ... */
#define CI_END \
if (d_mv) memcpy(dst, &aligned, dt_size); \
if (d_mv) HDmemcpy(dst, &aligned, dt_size); \
} \
break; \
default: \
@ -4718,7 +4718,7 @@ H5T_conv_float_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
for (elmtno=0; elmtno<nelmts; elmtno++, --src, --dst) {
/* Align source and/or destination */
if (src_mv) {
memcpy(&aligned, src, sizeof(float));
HDmemcpy(&aligned, src, sizeof(float));
s = (float*)&aligned;
} else {
s = src;
@ -4730,7 +4730,7 @@ H5T_conv_float_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
*d = *s;
/* Unalign destination */
if (dst_mv) memcpy(dst, &aligned, sizeof(double));
if (dst_mv) HDmemcpy(dst, &aligned, sizeof(double));
}
break;
@ -4821,7 +4821,7 @@ H5T_conv_double_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
for (elmtno=0; elmtno<nelmts; elmtno++, src++, dst++) {
/* Align source and/or destination */
if (src_mv) {
memcpy(&aligned, src, sizeof(double));
HDmemcpy(&aligned, src, sizeof(double));
s = (double*)&aligned;
} else {
s = src;
@ -4845,7 +4845,7 @@ H5T_conv_double_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
}
/* Unalign destination */
if (dst_mv) memcpy(dst, &aligned, sizeof(float));
if (dst_mv) HDmemcpy(dst, &aligned, sizeof(float));
}
break;

View File

@ -176,6 +176,9 @@
/* Define if you have the lseek64 function. */
#undef HAVE_LSEEK64
/* Define if you have the setsysinfo function. */
#undef HAVE_SETSYSINFO
/* Define if you have the sigaction function. */
#undef HAVE_SIGACTION
@ -200,12 +203,21 @@
/* Define if you have the <sys/ioctl.h> header file. */
#undef HAVE_SYS_IOCTL_H
/* Define if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
/* Define if you have the <sys/proc.h> header file. */
#undef HAVE_SYS_PROC_H
/* Define if you have the <sys/resource.h> header file. */
#undef HAVE_SYS_RESOURCE_H
/* Define if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define if you have the <sys/sysinfo.h> header file. */
#undef HAVE_SYS_SYSINFO_H
/* Define if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H

View File

@ -898,6 +898,22 @@ main(void)
detected_t d[MAXDETECT];
int nd = 0;
#if defined(HAVE_SETSYSINFO) && defined(SSI_NVPAIRS)
#if defined(UAC_NOPRINT) && defined(UAC_SIGBUS)
/*
* Make sure unaligned access generates SIGBUS and doesn't print warning
* messages so that we can detect alignment constraints on the DEC Alpha.
*/
int nvpairs[2];
nvpairs[0] = SSIN_UACPROC;
nvpairs[1] = UAC_NOPRINT | UAC_SIGBUS;
if (setsysinfo(SSI_NVPAIRS, nvpairs, 1, 0, 0)<0) {
fprintf(stderr, "H5detect: unable to turn off UAC handling: %s\n",
strerror(errno));
}
#endif
#endif
print_header();
DETECT_I(signed char, SCHAR, d[nd]); nd++;

View File

@ -89,6 +89,23 @@
# include <sys/ioctl.h>
#endif
/*
* System information. These are needed on the DEC Alpha to turn off fixing
* of unaligned accesses by the operating system during detection of
* alignment constraints in H5detect.c:main(). The <sys/param.h> must be
* included before <sys/proc.h> on FreeBSD even though we never use anything
* from either header file on that system.
*/
#ifdef HAVE_SYS_SYSINFO_H
# include <sys/sysinfo.h>
#endif
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#ifdef HAVE_SYS_PROC_H
# include <sys/proc.h>
#endif
/*
* Win32 is severely broken when it comes to ANSI-C and Posix.1 compliance.
*/
@ -540,8 +557,12 @@ __DLL__ int HDfprintf (FILE *stream, const char *fmt, ...);
#define HDmbtowc(P,S,Z) mbtowc(P,S,Z)
#define HDmemchr(S,C,Z) memchr(S,C,Z)
#define HDmemcmp(X,Y,Z) memcmp(X,Y,Z)
#define HDmemcpy(X,Y,Z) memcpy(X,Y,Z)
#define HDmemmove(X,Y,Z) memmove(X,Y,Z)
/*
* The (char*) casts are required for the DEC when optimizations are turned
* on and the source and/or destination are not aligned.
*/
#define HDmemcpy(X,Y,Z) memcpy((char*)(X),(const char*)(Y),Z)
#define HDmemmove(X,Y,Z) memmove((char*)(X),(const char*)(Y),Z)
#define HDmemset(X,C,Z) memset(X,C,Z)
#define HDmkdir(S,M) mkdir(S,M)
#define HDmkfifo(S,M) mkfifo(S,M)

View File

@ -30,6 +30,38 @@ h5test.o: \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
big.o: \
big.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
bittests.o: \
bittests.c \
h5test.h \
@ -87,6 +119,102 @@ chunk.o: \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h
cmpd_dset.o: \
cmpd_dset.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
dsets.o: \
dsets.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
dtypes.o: \
dtypes.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
extend.o: \
extend.c \
h5test.h \
@ -119,6 +247,38 @@ extend.o: \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
external.o: \
external.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
fillval.o: \
fillval.c \
h5test.h \
@ -250,12 +410,6 @@ gheap.o: \
../src/H5Gprivate.h \
../src/H5Bprivate.h \
../src/H5Eprivate.h
hyperslab.o: \
hyperslab.c \
../src/H5private.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h
iopipe.o: \
iopipe.c \
../src/hdf5.h \
@ -421,6 +575,76 @@ mount.o: \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
mtime.o: \
mtime.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
ohdr.o: \
ohdr.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h \
../src/H5Gprivate.h \
../src/H5Bprivate.h \
../src/H5Iprivate.h \
../src/H5Oprivate.h \
../src/H5Sprivate.h \
../src/H5Zprivate.h
overhead.o: \
overhead.c \
../src/hdf5.h \
@ -531,14 +755,18 @@ tattr.o: \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h
testhdf5.o: \
testhdf5.c \
testhdf5.h \
../src/H5private.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h
../src/H5api_adpt.h \
../src/H5Eprivate.h \
../src/H5Epublic.h
tfile.o: \
tfile.c \
testhdf5.h \
@ -553,8 +781,7 @@ tfile.o: \
../src/H5Bpublic.h \
../src/H5Fprivate.h \
../src/H5Fpublic.h \
../src/H5Dpublic.h \
../src/H5Pprivate.h
../src/H5Dpublic.h
th5s.o: \
th5s.c \
testhdf5.h \
@ -581,8 +808,7 @@ th5s.o: \
../src/H5Tprivate.h \
../src/H5Tpublic.h \
../src/H5Zprivate.h \
../src/H5Zpublic.h \
../src/H5Pprivate.h
../src/H5Zpublic.h
tmeta.o: \
tmeta.c \
testhdf5.h \
@ -592,7 +818,9 @@ tmeta.o: \
../src/H5api_adpt.h \
../src/H5Eprivate.h \
../src/H5Epublic.h \
../src/H5Ipublic.h
../src/H5Ipublic.h \
../src/H5Fprivate.h \
../src/H5Fpublic.h
trefer.o: \
trefer.c \
testhdf5.h \
@ -617,7 +845,9 @@ trefer.o: \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h
tselect.o: \
tselect.c \
testhdf5.h \
@ -642,7 +872,9 @@ tselect.o: \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h
unlink.o: \
unlink.c \
h5test.h \
@ -675,172 +907,6 @@ unlink.o: \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
external.o: \
external.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
big.o: \
big.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
cmpd_dset.o: \
cmpd_dset.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
mtime.o: \
mtime.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
ohdr.o: \
ohdr.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h \
../src/H5Gprivate.h \
../src/H5Bprivate.h \
../src/H5Iprivate.h \
../src/H5Oprivate.h \
../src/H5Sprivate.h \
../src/H5Zprivate.h
enum.o: \
enum.c \
h5test.h \
@ -873,67 +939,11 @@ enum.o: \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
dsets.o: \
dsets.c \
h5test.h \
../src/hdf5.h \
hyperslab.o: \
hyperslab.c \
../src/H5private.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
dtypes.o: \
dtypes.c \
h5test.h \
../src/hdf5.h \
../src/H5public.h \
../src/H5config.h \
../src/H5api_adpt.h \
../src/H5Ipublic.h \
../src/H5Apublic.h \
../src/H5ACpublic.h \
../src/H5Bpublic.h \
../src/H5Dpublic.h \
../src/H5Epublic.h \
../src/H5Fpublic.h \
../src/H5Gpublic.h \
../src/H5HGpublic.h \
../src/H5HLpublic.h \
../src/H5MFpublic.h \
../src/H5MMpublic.h \
../src/H5Opublic.h \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Rpublic.h \
../src/H5RApublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h \
../src/H5private.h \
../src/H5Tpkg.h \
../src/H5HGprivate.h \
../src/H5Fprivate.h \
../src/H5Rprivate.h \
../src/H5Tprivate.h
../src/H5MMprivate.h \
../src/H5MMpublic.h

View File

@ -1294,7 +1294,7 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
unsigned char dst_bits[32]; /*dest value in LE order*/
size_t src_nbits; /*source length in bits */
size_t dst_nbits; /*dst length in bits */
long_long aligned; /*restrictive alignment */
void *aligned=NULL; /*aligned temp buffer */
signed char hw_char;
unsigned char hw_uchar;
short hw_short;
@ -1395,6 +1395,7 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
dst_size = H5Tget_size(dst);
buf = aligned_malloc(nelmts*MAX(src_size, dst_size));
saved = aligned_malloc(nelmts*MAX(src_size, dst_size));
aligned = malloc(sizeof(long_long));
#ifdef SHOW_OVERFLOWS
noverflows_g = 0;
#endif
@ -1428,47 +1429,49 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
hw = (unsigned char*)&hw_char;
switch (src_type) {
case INT_CHAR:
memcpy(&aligned, (signed char*)saved+j, sizeof(char));
hw_char = (char)(*((signed char*)&aligned));
memcpy(aligned, saved+j*sizeof(char), sizeof(char));
hw_char = (char)(*((signed char*)aligned));
break;
case INT_UCHAR:
memcpy(&aligned, (unsigned char*)saved+j, sizeof(char));
hw_char = (char)(*((unsigned char*)&aligned));
memcpy(aligned, saved+j*sizeof(char), sizeof(char));
hw_char = (char)(*((unsigned char*)aligned));
break;
case INT_SHORT:
memcpy(&aligned, (short*)saved+j, sizeof(short));
hw_char = (char)(*((short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(short));
hw_char = (char)(*((short*)aligned));
break;
case INT_USHORT:
memcpy(&aligned, (unsigned short*)saved+j,
memcpy(aligned, saved+j*sizeof(short),
sizeof(unsigned short));
hw_char = (char)(*((unsigned short*)&aligned));
hw_char = (char)(*((unsigned short*)aligned));
break;
case INT_INT:
memcpy(&aligned, (int*)saved+j, sizeof(int));
hw_char = (char)(*((int*)&aligned));
memcpy(aligned, saved+j*sizeof(int), sizeof(int));
hw_char = (char)(*((int*)aligned));
break;
case INT_UINT:
memcpy(&aligned, (unsigned*)saved+j, sizeof(unsigned));
hw_char = (char)(*((unsigned*)&aligned));
memcpy(aligned, saved+j*sizeof(unsigned),
sizeof(unsigned));
hw_char = (char)(*((unsigned*)aligned));
break;
case INT_LONG:
memcpy(&aligned, (long*)saved+j, sizeof(long));
hw_char = (char)(*((long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(long));
hw_char = (char)(*((long*)aligned));
break;
case INT_ULONG:
memcpy(&aligned, (unsigned long*)saved+j,
memcpy(aligned, saved+j*sizeof(long),
sizeof(unsigned long));
hw_char = (char)(*((unsigned long*)&aligned));
hw_char = (char)(*((unsigned long*)aligned));
break;
case INT_LLONG:
memcpy(&aligned, (long_long*)saved+j, sizeof(long_long));
hw_char = (char)(*((long_long*)&aligned));
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(long_long));
hw_char = (char)(*((long_long*)aligned));
break;
case INT_ULLONG:
memcpy(&aligned, (unsigned long_long*)saved+j,
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(unsigned long_long));
hw_char = (char)(*((unsigned long_long*)&aligned));
hw_char = (char)(*((unsigned long_long*)aligned));
break;
case INT_OTHER:
break;
@ -1477,50 +1480,52 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
hw = (unsigned char*)&hw_uchar;
switch (src_type) {
case INT_CHAR:
memcpy(&aligned, (signed char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(signed char));
hw_uchar = (unsigned char)(*((signed char*)&aligned));
hw_uchar = (unsigned char)(*((signed char*)aligned));
break;
case INT_UCHAR:
memcpy(&aligned, (unsigned char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(unsigned char));
hw_uchar = (unsigned char)(*((unsigned char*)&aligned));
hw_uchar = (unsigned char)(*((unsigned char*)aligned));
break;
case INT_SHORT:
memcpy(&aligned, (short*)saved+j, sizeof(short));
hw_uchar = (unsigned char)(*((short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(short));
hw_uchar = (unsigned char)(*((short*)aligned));
break;
case INT_USHORT:
memcpy(&aligned, (unsigned short*)saved+j,
memcpy(aligned, saved+j*sizeof(short),
sizeof(unsigned short));
hw_uchar = (unsigned char)(*((unsigned short*)&aligned));
hw_uchar = (unsigned char)(*((unsigned short*)aligned));
break;
case INT_INT:
memcpy(&aligned, (int*)saved+j, sizeof(int));
hw_uchar = (unsigned char)(*((int*)&aligned));
memcpy(aligned, saved+j*sizeof(int), sizeof(int));
hw_uchar = (unsigned char)(*((int*)aligned));
break;
case INT_UINT:
memcpy(&aligned, (unsigned*)saved+j, sizeof(unsigned));
hw_uchar = (unsigned char)(*((unsigned*)&aligned));
memcpy(aligned, saved+j*sizeof(unsigned),
sizeof(unsigned));
hw_uchar = (unsigned char)(*((unsigned*)aligned));
break;
case INT_LONG:
memcpy(&aligned, (long*)saved+j, sizeof(long));
hw_uchar = (unsigned char)(*((long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(long));
hw_uchar = (unsigned char)(*((long*)aligned));
break;
case INT_ULONG:
memcpy(&aligned, (unsigned long*)saved+j,
memcpy(aligned, saved+j*sizeof(long),
sizeof(unsigned long));
hw_uchar = (unsigned char)(*((unsigned long*)&aligned));
hw_uchar = (unsigned char)(*((unsigned long*)aligned));
break;
case INT_LLONG:
memcpy(&aligned, (long_long*)saved+j, sizeof(long_long));
hw_uchar = (unsigned char)(*((long_long*)&aligned));
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(long_long));
hw_uchar = (unsigned char)(*((long_long*)aligned));
break;
case INT_ULLONG:
memcpy(&aligned, (unsigned long_long*)saved+j,
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(unsigned long_long));
hw_uchar = (unsigned char)(*((unsigned long_long*)
&aligned));
aligned));
break;
case INT_OTHER:
break;
@ -1529,49 +1534,50 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
hw = (unsigned char*)&hw_short;
switch (src_type) {
case INT_CHAR:
memcpy(&aligned, (signed char*)saved+j,
sizeof(signed char));
hw_short = (short)(*((signed char*)&aligned));
memcpy(aligned, saved+j*sizeof(char), sizeof(signed char));
hw_short = (short)(*((signed char*)aligned));
break;
case INT_UCHAR:
memcpy(&aligned, (unsigned char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(unsigned char));
hw_short = (short)(*((unsigned char*)&aligned));
hw_short = (short)(*((unsigned char*)aligned));
break;
case INT_SHORT:
memcpy(&aligned, (short*)saved+j, sizeof(short));
hw_short = (short)(*((short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(short));
hw_short = (short)(*((short*)aligned));
break;
case INT_USHORT:
memcpy(&aligned, (unsigned short*)saved+j,
memcpy(aligned, saved+j*sizeof(short),
sizeof(unsigned short));
hw_short = (short)(*((unsigned short*)&aligned));
hw_short = (short)(*((unsigned short*)aligned));
break;
case INT_INT:
memcpy(&aligned, (int*)saved+j, sizeof(int));
hw_short = (short)(*((int*)&aligned));
memcpy(aligned, saved+j*sizeof(int), sizeof(int));
hw_short = (short)(*((int*)aligned));
break;
case INT_UINT:
memcpy(&aligned, (unsigned*)saved+j, sizeof(unsigned));
hw_short = (short)(*((unsigned*)&aligned));
memcpy(aligned, saved+j*sizeof(unsigned),
sizeof(unsigned));
hw_short = (short)(*((unsigned*)aligned));
break;
case INT_LONG:
memcpy(&aligned, (long*)saved+j, sizeof(long));
hw_short = (short)(*((long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(long));
hw_short = (short)(*((long*)aligned));
break;
case INT_ULONG:
memcpy(&aligned, (unsigned long*)saved+j,
memcpy(aligned, saved+j*sizeof(long),
sizeof(unsigned long));
hw_short = (short)(*((unsigned long*)&aligned));
hw_short = (short)(*((unsigned long*)aligned));
break;
case INT_LLONG:
memcpy(&aligned, (long_long*)saved+j, sizeof(long_long));
hw_short = (short)(*((long_long*)&aligned));
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(long_long));
hw_short = (short)(*((long_long*)aligned));
break;
case INT_ULLONG:
memcpy(&aligned, (unsigned long_long*)saved+j,
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(unsigned long_long));
hw_short = (short)(*((unsigned long_long*)&aligned));
hw_short = (short)(*((unsigned long_long*)aligned));
break;
case INT_OTHER:
break;
@ -1580,50 +1586,51 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
hw = (unsigned char*)&hw_ushort;
switch (src_type) {
case INT_CHAR:
memcpy(&aligned, (signed char*)saved+j,
sizeof(signed char));
hw_ushort = (unsigned short)(*((signed char*)&aligned));
memcpy(aligned, saved+j*sizeof(char), sizeof(signed char));
hw_ushort = (unsigned short)(*((signed char*)aligned));
break;
case INT_UCHAR:
memcpy(&aligned, (unsigned char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(unsigned char));
hw_ushort = (unsigned short)(*((unsigned char*)&aligned));
hw_ushort = (unsigned short)(*((unsigned char*)aligned));
break;
case INT_SHORT:
memcpy(&aligned, (short*)saved+j, sizeof(short));
hw_ushort = (unsigned short)(*((short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(short));
hw_ushort = (unsigned short)(*((short*)aligned));
break;
case INT_USHORT:
memcpy(&aligned, (unsigned short*)saved+j,
memcpy(aligned, saved+j*sizeof(short),
sizeof(unsigned short));
hw_ushort = (unsigned short)(*((unsigned short*)&aligned));
hw_ushort = (unsigned short)(*((unsigned short*)aligned));
break;
case INT_INT:
memcpy(&aligned, (int*)saved+j, sizeof(int));
hw_ushort = (unsigned short)(*((int*)&aligned));
memcpy(aligned, saved+j*sizeof(int), sizeof(int));
hw_ushort = (unsigned short)(*((int*)aligned));
break;
case INT_UINT:
memcpy(&aligned, (unsigned*)saved+j, sizeof(unsigned));
hw_ushort = (unsigned short)(*((unsigned*)&aligned));
memcpy(aligned, saved+j*sizeof(unsigned),
sizeof(unsigned));
hw_ushort = (unsigned short)(*((unsigned*)aligned));
break;
case INT_LONG:
memcpy(&aligned, (long*)saved+j, sizeof(long));
hw_ushort = (unsigned short)(*((long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(long));
hw_ushort = (unsigned short)(*((long*)aligned));
break;
case INT_ULONG:
memcpy(&aligned, (unsigned long*)saved+j,
memcpy(aligned, saved+j*sizeof(long),
sizeof(unsigned long));
hw_ushort = (unsigned short)(*((unsigned long*)&aligned));
hw_ushort = (unsigned short)(*((unsigned long*)aligned));
break;
case INT_LLONG:
memcpy(&aligned, (long_long*)saved+j, sizeof(long_long));
hw_ushort = (unsigned short)(*((long_long*)&aligned));
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(long_long));
hw_ushort = (unsigned short)(*((long_long*)aligned));
break;
case INT_ULLONG:
memcpy(&aligned, (unsigned long_long*)saved+j,
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(unsigned long_long));
hw_ushort = (unsigned short)(*((unsigned long_long*)
&aligned));
aligned));
break;
case INT_OTHER:
break;
@ -1632,49 +1639,50 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
hw = (unsigned char*)&hw_int;
switch (src_type) {
case INT_CHAR:
memcpy(&aligned, (signed char*)saved+j,
sizeof(signed char));
hw_int = (int)(*((signed char*)&aligned));
memcpy(aligned, saved+j*sizeof(char), sizeof(signed char));
hw_int = (int)(*((signed char*)aligned));
break;
case INT_UCHAR:
memcpy(&aligned, (unsigned char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(unsigned char));
hw_int = (int)(*((unsigned char*)&aligned));
hw_int = (int)(*((unsigned char*)aligned));
break;
case INT_SHORT:
memcpy(&aligned, (short*)saved+j, sizeof(short));
hw_int = (int)(*((short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(short));
hw_int = (int)(*((short*)aligned));
break;
case INT_USHORT:
memcpy(&aligned, (unsigned short*)saved+j,
memcpy(aligned, saved+j*sizeof(short),
sizeof(unsigned short));
hw_int = (int)(*((unsigned short*)&aligned));
hw_int = (int)(*((unsigned short*)aligned));
break;
case INT_INT:
memcpy(&aligned, (int*)saved+j, sizeof(int));
hw_int = (int)(*((int*)&aligned));
memcpy(aligned, saved+j*sizeof(int), sizeof(int));
hw_int = (int)(*((int*)aligned));
break;
case INT_UINT:
memcpy(&aligned, (unsigned*)saved+j, sizeof(unsigned));
hw_int = (int)(*((unsigned*)&aligned));
memcpy(aligned, saved+j*sizeof(unsigned),
sizeof(unsigned));
hw_int = (int)(*((unsigned*)aligned));
break;
case INT_LONG:
memcpy(&aligned, (long*)saved+j, sizeof(long));
hw_int = (int)(*((long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(long));
hw_int = (int)(*((long*)aligned));
break;
case INT_ULONG:
memcpy(&aligned, (unsigned long*)saved+j,
memcpy(aligned, saved+j*sizeof(long),
sizeof(unsigned long));
hw_int = (int)(*((unsigned long*)&aligned));
hw_int = (int)(*((unsigned long*)aligned));
break;
case INT_LLONG:
memcpy(&aligned, (long_long*)saved+j, sizeof(long_long));
hw_int = (int)(*((long_long*)&aligned));
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(long_long));
hw_int = (int)(*((long_long*)aligned));
break;
case INT_ULLONG:
memcpy(&aligned, (unsigned long_long*)saved+j,
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(unsigned long_long));
hw_int = (int)(*((unsigned long_long*)&aligned));
hw_int = (int)(*((unsigned long_long*)aligned));
break;
case INT_OTHER:
break;
@ -1683,49 +1691,51 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
hw = (unsigned char*)&hw_uint;
switch (src_type) {
case INT_CHAR:
memcpy(&aligned, (signed char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(signed char));
hw_uint = (unsigned int)(*((signed char*)&aligned));
hw_uint = (unsigned int)(*((signed char*)aligned));
break;
case INT_UCHAR:
memcpy(&aligned, (unsigned char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(unsigned char));
hw_uint = (unsigned int)(*((unsigned char*)&aligned));
hw_uint = (unsigned int)(*((unsigned char*)aligned));
break;
case INT_SHORT:
memcpy(&aligned, (short*)saved+j, sizeof(short));
hw_uint = (unsigned int)(*((short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(short));
hw_uint = (unsigned int)(*((short*)aligned));
break;
case INT_USHORT:
memcpy(&aligned, (unsigned short*)saved+j,
memcpy(aligned, saved+j*sizeof(short),
sizeof(unsigned short));
hw_uint = (unsigned int)(*((unsigned short*)&aligned));
hw_uint = (unsigned int)(*((unsigned short*)aligned));
break;
case INT_INT:
memcpy(&aligned, (int*)saved+j, sizeof(int));
hw_uint = (unsigned int)(*((int*)&aligned));
memcpy(aligned, saved+j*sizeof(int), sizeof(int));
hw_uint = (unsigned int)(*((int*)aligned));
break;
case INT_UINT:
memcpy(&aligned, (unsigned*)saved+j, sizeof(unsigned));
hw_uint = (unsigned int)(*((unsigned*)&aligned));
memcpy(aligned, saved+j*sizeof(unsigned),
sizeof(unsigned));
hw_uint = (unsigned int)(*((unsigned*)aligned));
break;
case INT_LONG:
memcpy(&aligned, (long*)saved+j, sizeof(long));
hw_uint = (unsigned int)(*((long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(long));
hw_uint = (unsigned int)(*((long*)aligned));
break;
case INT_ULONG:
memcpy(&aligned, (unsigned long*)saved+j,
memcpy(aligned, saved+j*sizeof(long),
sizeof(unsigned long));
hw_uint = (unsigned int)(*((unsigned long*)&aligned));
hw_uint = (unsigned int)(*((unsigned long*)aligned));
break;
case INT_LLONG:
memcpy(&aligned, (long_long*)saved+j, sizeof(long_long));
hw_uint = (unsigned int)(*((long_long*)&aligned));
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(long_long));
hw_uint = (unsigned int)(*((long_long*)aligned));
break;
case INT_ULLONG:
memcpy(&aligned, (unsigned long_long*)saved+j,
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(unsigned long_long));
hw_uint = (unsigned int)(*((unsigned long_long*)&aligned));
hw_uint = (unsigned int)(*((unsigned long_long*)aligned));
break;
case INT_OTHER:
break;
@ -1734,49 +1744,51 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
hw = (unsigned char*)&hw_long;
switch (src_type) {
case INT_CHAR:
memcpy(&aligned, (signed char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(signed char));
hw_long = (long int)(*((signed char*)&aligned));
hw_long = (long int)(*((signed char*)aligned));
break;
case INT_UCHAR:
memcpy(&aligned, (unsigned char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(unsigned char));
hw_long = (long int)(*((unsigned char*)&aligned));
hw_long = (long int)(*((unsigned char*)aligned));
break;
case INT_SHORT:
memcpy(&aligned, (short*)saved+j, sizeof(short));
hw_long = (long int)(*((short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(short));
hw_long = (long int)(*((short*)aligned));
break;
case INT_USHORT:
memcpy(&aligned, (unsigned short*)saved+j,
memcpy(aligned, saved+j*sizeof(short),
sizeof(unsigned short));
hw_long = (long int)(*((unsigned short*)&aligned));
hw_long = (long int)(*((unsigned short*)aligned));
break;
case INT_INT:
memcpy(&aligned, (int*)saved+j, sizeof(int));
hw_long = (long int)(*((int*)&aligned));
memcpy(aligned, saved+j*sizeof(int), sizeof(int));
hw_long = (long int)(*((int*)aligned));
break;
case INT_UINT:
memcpy(&aligned, (unsigned*)saved+j, sizeof(unsigned));
hw_long = (long int)(*((unsigned*)&aligned));
memcpy(aligned, saved+j*sizeof(unsigned),
sizeof(unsigned));
hw_long = (long int)(*((unsigned*)aligned));
break;
case INT_LONG:
memcpy(&aligned, (long*)saved+j, sizeof(long));
hw_long = (long int)(*((long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(long));
hw_long = (long int)(*((long*)aligned));
break;
case INT_ULONG:
memcpy(&aligned, (unsigned long*)saved+j,
memcpy(aligned, saved+j*sizeof(long),
sizeof(unsigned long));
hw_long = (long int)(*((unsigned long*)&aligned));
hw_long = (long int)(*((unsigned long*)aligned));
break;
case INT_LLONG:
memcpy(&aligned, (long_long*)saved+j, sizeof(long_long));
hw_long = (long int)(*((long_long*)&aligned));
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(long_long));
hw_long = (long int)(*((long_long*)aligned));
break;
case INT_ULLONG:
memcpy(&aligned, (unsigned long_long*)saved+j,
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(unsigned long_long));
hw_long = (long int)(*((unsigned long_long*)&aligned));
hw_long = (long int)(*((unsigned long_long*)aligned));
break;
case INT_OTHER:
break;
@ -1785,50 +1797,52 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
hw = (unsigned char*)&hw_ulong;
switch (src_type) {
case INT_CHAR:
memcpy(&aligned, (signed char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(signed char));
hw_ulong = (unsigned long)(*((signed char*)&aligned));
hw_ulong = (unsigned long)(*((signed char*)aligned));
break;
case INT_UCHAR:
memcpy(&aligned, (unsigned char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(unsigned char));
hw_ulong = (unsigned long)(*((unsigned char*)&aligned));
hw_ulong = (unsigned long)(*((unsigned char*)aligned));
break;
case INT_SHORT:
memcpy(&aligned, (short*)saved+j, sizeof(short));
hw_ulong = (unsigned long)(*((short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(short));
hw_ulong = (unsigned long)(*((short*)aligned));
break;
case INT_USHORT:
memcpy(&aligned, (unsigned short*)saved+j,
memcpy(aligned, saved+j*sizeof(short),
sizeof(unsigned short));
hw_ulong = (unsigned long)(*((unsigned short*)&aligned));
hw_ulong = (unsigned long)(*((unsigned short*)aligned));
break;
case INT_INT:
memcpy(&aligned, (int*)saved+j, sizeof(int));
hw_ulong = (unsigned long)(*((int*)&aligned));
memcpy(aligned, saved+j*sizeof(int), sizeof(int));
hw_ulong = (unsigned long)(*((int*)aligned));
break;
case INT_UINT:
memcpy(&aligned, (unsigned*)saved+j, sizeof(unsigned));
hw_ulong = (unsigned long)(*((unsigned*)&aligned));
memcpy(aligned, saved+j*sizeof(unsigned),
sizeof(unsigned));
hw_ulong = (unsigned long)(*((unsigned*)aligned));
break;
case INT_LONG:
memcpy(&aligned, (long*)saved+j, sizeof(long));
hw_ulong = (unsigned long)(*((long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(long));
hw_ulong = (unsigned long)(*((long*)aligned));
break;
case INT_ULONG:
memcpy(&aligned, (unsigned long*)saved+j,
memcpy(aligned, saved+j*sizeof(long),
sizeof(unsigned long));
hw_ulong = (unsigned long)(*((unsigned long*)&aligned));
hw_ulong = (unsigned long)(*((unsigned long*)aligned));
break;
case INT_LLONG:
memcpy(&aligned, (long_long*)saved+j, sizeof(long_long));
hw_ulong = (unsigned long)(*((long_long*)&aligned));
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(long_long));
hw_ulong = (unsigned long)(*((long_long*)aligned));
break;
case INT_ULLONG:
memcpy(&aligned, (unsigned long_long*)saved+j,
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(unsigned long_long));
hw_ulong = (unsigned long)(*((unsigned long_long*)
&aligned));
aligned));
break;
case INT_OTHER:
break;
@ -1837,49 +1851,51 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
hw = (unsigned char*)&hw_llong;
switch (src_type) {
case INT_CHAR:
memcpy(&aligned, (signed char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(signed char));
hw_llong = (long_long)(*((signed char*)&aligned));
hw_llong = (long_long)(*((signed char*)aligned));
break;
case INT_UCHAR:
memcpy(&aligned, (unsigned char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(unsigned char));
hw_llong = (long_long)(*((unsigned char*)&aligned));
hw_llong = (long_long)(*((unsigned char*)aligned));
break;
case INT_SHORT:
memcpy(&aligned, (short*)saved+j, sizeof(short));
hw_llong = (long_long)(*((short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(short));
hw_llong = (long_long)(*((short*)aligned));
break;
case INT_USHORT:
memcpy(&aligned, (unsigned short*)saved+j,
memcpy(aligned, saved+j*sizeof(short),
sizeof(unsigned short));
hw_llong = (long_long)(*((unsigned short*)&aligned));
hw_llong = (long_long)(*((unsigned short*)aligned));
break;
case INT_INT:
memcpy(&aligned, (int*)saved+j, sizeof(int));
hw_llong = (long_long)(*((int*)&aligned));
memcpy(aligned, saved+j*sizeof(int), sizeof(int));
hw_llong = (long_long)(*((int*)aligned));
break;
case INT_UINT:
memcpy(&aligned, (unsigned*)saved+j, sizeof(unsigned));
hw_llong = (long_long)(*((unsigned*)&aligned));
memcpy(aligned, saved+j*sizeof(unsigned),
sizeof(unsigned));
hw_llong = (long_long)(*((unsigned*)aligned));
break;
case INT_LONG:
memcpy(&aligned, (long*)saved+j, sizeof(long));
hw_llong = (long_long)(*((long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(long));
hw_llong = (long_long)(*((long*)aligned));
break;
case INT_ULONG:
memcpy(&aligned, (unsigned long*)saved+j,
memcpy(aligned, saved+j*sizeof(long),
sizeof(unsigned long));
hw_llong = (long_long)(*((unsigned long*)&aligned));
hw_llong = (long_long)(*((unsigned long*)aligned));
break;
case INT_LLONG:
memcpy(&aligned, (long_long*)saved+j, sizeof(long_long));
hw_llong = (long_long)(*((long_long*)&aligned));
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(long_long));
hw_llong = (long_long)(*((long_long*)aligned));
break;
case INT_ULLONG:
memcpy(&aligned, (unsigned long_long*)saved+j,
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(unsigned long_long));
hw_llong = (long_long)(*((unsigned long_long*)&aligned));
hw_llong = (long_long)(*((unsigned long_long*)aligned));
break;
case INT_OTHER:
break;
@ -1888,54 +1904,56 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
hw = (unsigned char*)&hw_ullong;
switch (src_type) {
case INT_CHAR:
memcpy(&aligned, (signed char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(signed char));
hw_ullong = (unsigned long_long)(*((signed char*)
&aligned));
aligned));
break;
case INT_UCHAR:
memcpy(&aligned, (unsigned char*)saved+j,
memcpy(aligned, saved+j*sizeof(char),
sizeof(unsigned char));
hw_ullong = (unsigned long_long)(*((unsigned char*)
&aligned));
aligned));
break;
case INT_SHORT:
memcpy(&aligned, (short*)saved+j, sizeof(short));
hw_ullong = (unsigned long_long)(*((short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(short));
hw_ullong = (unsigned long_long)(*((short*)aligned));
break;
case INT_USHORT:
memcpy(&aligned, (unsigned short*)saved+j,
memcpy(aligned, saved+j*sizeof(short),
sizeof(unsigned short));
hw_ullong = (unsigned long_long)(*((unsigned short*)
&aligned));
aligned));
break;
case INT_INT:
memcpy(&aligned, (int*)saved+j, sizeof(int));
hw_ullong = (unsigned long_long)(*((int*)&aligned));
memcpy(aligned, saved+j*sizeof(int), sizeof(int));
hw_ullong = (unsigned long_long)(*((int*)aligned));
break;
case INT_UINT:
memcpy(&aligned, (unsigned*)saved+j, sizeof(unsigned));
hw_ullong = (unsigned long_long)(*((unsigned*)&aligned));
memcpy(aligned, saved+j*sizeof(unsigned),
sizeof(unsigned));
hw_ullong = (unsigned long_long)(*((unsigned*)aligned));
break;
case INT_LONG:
memcpy(&aligned, (long*)saved+j, sizeof(long));
hw_ullong = (unsigned long_long)(*((long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(long));
hw_ullong = (unsigned long_long)(*((long*)aligned));
break;
case INT_ULONG:
memcpy(&aligned, (unsigned long*)saved+j,
memcpy(aligned, saved+j*sizeof(long),
sizeof(unsigned long));
hw_ullong = (unsigned long_long)(*((unsigned long*)
&aligned));
aligned));
break;
case INT_LLONG:
memcpy(&aligned, (long_long*)saved+j, sizeof(long_long));
hw_ullong = (unsigned long_long)(*((long_long*)&aligned));
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(long_long));
hw_ullong = (unsigned long_long)(*((long_long*)aligned));
break;
case INT_ULLONG:
memcpy(&aligned, (unsigned long_long*)saved+j,
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(unsigned long_long));
hw_ullong = (unsigned long_long)(*((unsigned long_long*)
&aligned));
aligned));
break;
case INT_OTHER:
break;
@ -2073,49 +2091,47 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
printf("%*s", 3*MAX(0, (ssize_t)dst_size-(ssize_t)src_size), "");
switch (src_type) {
case INT_CHAR:
memcpy(&aligned, (signed char*)saved+j, sizeof(signed char));
printf(" %29d\n", *((signed char*)&aligned));
memcpy(aligned, saved+j*sizeof(char), sizeof(signed char));
printf(" %29d\n", *((signed char*)aligned));
break;
case INT_UCHAR:
memcpy(&aligned, (unsigned char*)saved+j,
sizeof(unsigned char));
printf(" %29u\n", *((unsigned char*)&aligned));
memcpy(aligned, saved+j*sizeof(char), sizeof(unsigned char));
printf(" %29u\n", *((unsigned char*)aligned));
break;
case INT_SHORT:
memcpy(&aligned, (short*)saved+j, sizeof(short));
printf(" %29d\n", *((short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(short));
printf(" %29d\n", *((short*)aligned));
break;
case INT_USHORT:
memcpy(&aligned, (unsigned short*)saved+j,
memcpy(aligned, saved+j*sizeof(short),
sizeof(unsigned short));
printf(" %29u\n", *((unsigned short*)&aligned));
printf(" %29u\n", *((unsigned short*)aligned));
break;
case INT_INT:
memcpy(&aligned, (int*)saved+j, sizeof(int));
printf(" %29d\n", *((int*)&aligned));
memcpy(aligned, saved+j*sizeof(int), sizeof(int));
printf(" %29d\n", *((int*)aligned));
break;
case INT_UINT:
memcpy(&aligned, (unsigned*)saved+j, sizeof(unsigned));
printf(" %29u\n", *((unsigned*)&aligned));
memcpy(aligned, saved+j*sizeof(unsigned), sizeof(unsigned));
printf(" %29u\n", *((unsigned*)aligned));
break;
case INT_LONG:
memcpy(&aligned, (long*)saved+j, sizeof(long));
printf(" %29ld\n", *((long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(long));
printf(" %29ld\n", *((long*)aligned));
break;
case INT_ULONG:
memcpy(&aligned, (unsigned long*)saved+j,
sizeof(unsigned long));
printf(" %29lu\n", *((unsigned long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(unsigned long));
printf(" %29lu\n", *((unsigned long*)aligned));
break;
case INT_LLONG:
memcpy(&aligned, (long_long*)saved+j, sizeof(long_long));
printf(" %29"PRINTF_LL_WIDTH"d\n", *((long_long*)&aligned));
memcpy(aligned, saved+j*sizeof(long_long), sizeof(long_long));
printf(" %29"PRINTF_LL_WIDTH"d\n", *((long_long*)aligned));
break;
case INT_ULLONG:
memcpy(&aligned, (unsigned long_long*)saved+j,
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(unsigned long_long));
printf(" %29"PRINTF_LL_WIDTH"u\n",
*((unsigned long_long*)&aligned));
*((unsigned long_long*)aligned));
break;
case INT_OTHER:
break;
@ -2128,49 +2144,46 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
printf("%*s", 3*MAX(0, (ssize_t)src_size-(ssize_t)dst_size), "");
switch (dst_type) {
case INT_CHAR:
memcpy(&aligned, (signed char*)saved+j, sizeof(signed char));
printf(" %29d\n", *((signed char*)&aligned));
memcpy(aligned, saved+j*sizeof(char), sizeof(signed char));
printf(" %29d\n", *((signed char*)aligned));
break;
case INT_UCHAR:
memcpy(&aligned, (unsigned char*)saved+j,
sizeof(unsigned char));
printf(" %29u\n", *((unsigned char*)&aligned));
memcpy(aligned, saved+j*sizeof(char), sizeof(unsigned char));
printf(" %29u\n", *((unsigned char*)aligned));
break;
case INT_SHORT:
memcpy(&aligned, (short*)saved+j, sizeof(short));
printf(" %29d\n", *((short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(short));
printf(" %29d\n", *((short*)aligned));
break;
case INT_USHORT:
memcpy(&aligned, (unsigned short*)saved+j,
sizeof(unsigned short));
printf(" %29u\n", *((unsigned short*)&aligned));
memcpy(aligned, saved+j*sizeof(short), sizeof(unsigned short));
printf(" %29u\n", *((unsigned short*)aligned));
break;
case INT_INT:
memcpy(&aligned, (int*)saved+j, sizeof(int));
printf(" %29d\n", *((int*)&aligned));
memcpy(aligned, saved+j*sizeof(int), sizeof(int));
printf(" %29d\n", *((int*)aligned));
break;
case INT_UINT:
memcpy(&aligned, (unsigned*)saved+j, sizeof(unsigned));
printf(" %29u\n", *((unsigned*)&aligned));
memcpy(aligned, saved+j*sizeof(unsigned), sizeof(unsigned));
printf(" %29u\n", *((unsigned*)aligned));
break;
case INT_LONG:
memcpy(&aligned, (long*)saved+j, sizeof(long));
printf(" %29ld\n", *((long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(long));
printf(" %29ld\n", *((long*)aligned));
break;
case INT_ULONG:
memcpy(&aligned, (unsigned long*)saved+j,
sizeof(unsigned long));
printf(" %29lu\n", *((unsigned long*)&aligned));
memcpy(aligned, saved+j*sizeof(long), sizeof(unsigned long));
printf(" %29lu\n", *((unsigned long*)aligned));
break;
case INT_LLONG:
memcpy(&aligned, (long_long*)saved+j, sizeof(long_long));
printf(" %29"PRINTF_LL_WIDTH"d\n", *((long_long*)&aligned));
memcpy(aligned, saved+j*sizeof(long_long), sizeof(long_long));
printf(" %29"PRINTF_LL_WIDTH"d\n", *((long_long*)aligned));
break;
case INT_ULLONG:
memcpy(&aligned, (unsigned long_long*)saved+j,
memcpy(aligned, saved+j*sizeof(long_long),
sizeof(unsigned long_long));
printf(" %29"PRINTF_LL_WIDTH"u\n",
*((unsigned long_long*)&aligned));
*((unsigned long_long*)aligned));
break;
case INT_OTHER:
break;
@ -2233,6 +2246,7 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
done:
if (buf) aligned_free(buf);
if (saved) aligned_free(saved);
if (aligned) free(aligned);
fflush(stdout);
reset_hdf5(); /*print statistics*/
return (int)fails_all_tests;
@ -2240,6 +2254,7 @@ test_conv_int_1(const char *name, hid_t src, hid_t dst)
error:
if (buf) aligned_free(buf);
if (saved) aligned_free(saved);
if (aligned) free(aligned);
fflush(stdout);
reset_hdf5(); /*print statistics*/
return MAX((int)fails_all_tests, 1);
@ -2350,11 +2365,9 @@ test_conv_flt_1 (const char *name, hid_t src, hid_t dst)
char str[256]; /*hello string */
float hw_f; /*hardware-converted */
double hw_d; /*hardware-converted */
void *aligned=NULL; /*aligned buffer */
#if SIZEOF_LONG_DOUBLE!=SIZEOF_DOUBLE
long double hw_ld; /*hardware-converted */
long double aligned; /*aligned value */
#else
double aligned; /*aligned value */
#endif
unsigned char *hw=NULL; /*ptr to hardware-conv'd*/
size_t i, j, k; /*counters */
@ -2444,6 +2457,7 @@ test_conv_flt_1 (const char *name, hid_t src, hid_t dst)
dst_size = H5Tget_size(dst);
buf = aligned_malloc(nelmts*MAX(src_size, dst_size));
saved = aligned_malloc(nelmts*MAX(src_size, dst_size));
aligned = malloc(16); /*should be big enough for any type*/
#ifdef SHOW_OVERFLOWS
noverflows_g = 0;
#endif
@ -2516,44 +2530,45 @@ test_conv_flt_1 (const char *name, hid_t src, hid_t dst)
/* The hardware conversion */
if (FLT_FLOAT==src_type) {
memcpy(&aligned, (float*)saved+j, sizeof(float));
memcpy(aligned, saved+j*sizeof(float), sizeof(float));
if (FLT_FLOAT==dst_type) {
hw_f = *((float*)&aligned);
hw_f = *((float*)aligned);
hw = (unsigned char*)&hw_f;
} else if (FLT_DOUBLE==dst_type) {
hw_d = *((float*)&aligned);
hw_d = *((float*)aligned);
hw = (unsigned char*)&hw_d;
#if SIZEOF_LONG_DOUBLE!=SIZEOF_DOUBLE
} else {
hw_ld = *((float*)&aligned);
hw_ld = *((float*)aligned);
hw = (unsigned char*)&hw_ld;
#endif
}
} else if (FLT_DOUBLE==src_type) {
memcpy(&aligned, (double*)saved+j, sizeof(double));
memcpy(aligned, saved+j*sizeof(double), sizeof(double));
if (FLT_FLOAT==dst_type) {
hw_f = *((double*)&aligned);
hw_f = *((double*)aligned);
hw = (unsigned char*)&hw_f;
} else if (FLT_DOUBLE==dst_type) {
hw_d = *((double*)&aligned);
hw_d = *((double*)aligned);
hw = (unsigned char*)&hw_d;
#if SIZEOF_LONG_DOUBLE!=SIZEOF_DOUBLE
} else {
hw_ld = *((double*)&aligned);
hw_ld = *((double*)aligned);
hw = (unsigned char*)&hw_ld;
#endif
}
#if SIZEOF_LONG_DOUBLE!=SIZEOF_DOUBLE
} else {
memcpy(&aligned, (long double*)saved+j, sizeof(long double));
memcpy(aligned, saved+j*sizeof(long double),
sizeof(long double));
if (FLT_FLOAT==dst_type) {
hw_f = *((long double*)&aligned);
hw_f = *((long double*)aligned);
hw = (unsigned char*)&hw_f;
} else if (FLT_DOUBLE==dst_type) {
hw_d = *((long double*)&aligned);
hw_d = *((long double*)aligned);
hw = (unsigned char*)&hw_d;
} else {
hw_ld = *((long double*)&aligned);
hw_ld = *((long double*)aligned);
hw = (unsigned char*)&hw_ld;
}
#endif
@ -2709,8 +2724,9 @@ test_conv_flt_1 (const char *name, hid_t src, hid_t dst)
#endif
done:
if (buf) aligned_free (buf);
if (saved) aligned_free (saved);
if (buf) aligned_free(buf);
if (saved) aligned_free(saved);
if (aligned) free(aligned);
fflush(stdout);
#ifdef HANDLE_SIGFPE
exit(MIN((int)fails_all_tests, 254));
@ -2720,8 +2736,9 @@ test_conv_flt_1 (const char *name, hid_t src, hid_t dst)
#endif
error:
if (buf) aligned_free (buf);
if (saved) aligned_free (saved);
if (buf) aligned_free(buf);
if (saved) aligned_free(saved);
if (aligned) free(aligned);
fflush(stdout);
#ifdef HANDLE_SIGFPE
exit(MIN(MAX((int)fails_all_tests, 1), 254));

View File

@ -284,7 +284,7 @@ test_fill(size_t nx, size_t ny, size_t nz,
* Purpose: Tests H5V_hyper_copy().
*
* The NX, NY, and NZ arguments are the size for the source and
* destination arrays. You map pass zero for NZ or for NY and
* destination arrays. You may pass zero for NZ or for NY and
* NZ to test the 2-d and 1-d cases respectively.
*
* A hyperslab is copied from/to (depending on MODE) various
@ -384,12 +384,12 @@ test_copy(int mode,
dst = H5MM_calloc(nx*ny*nz);
init_full(src, nx, ny, nz);
for (i = 0; i < nx; i += di) {
for (j = 0; j < ny; j += dj) {
for (k = 0; k < nz; k += dk) {
for (dx = 1; dx <= nx - i; dx += ddx) {
for (dy = 1; dy <= ny - j; dy += ddy) {
for (dz = 1; dz <= nz - k; dz += ddz) {
for (i=0; i<nx; i+=di) {
for (j=0; j<ny; j+=dj) {
for (k=0; k<nz; k+=dk) {
for (dx=1; dx<=nx-i; dx+=ddx) {
for (dy=1; dy<=ny-j; dy+=ddy) {
for (dz=1; dz<=nz-k; dz+=ddz) {
/*
* Describe the source and destination hyperslabs
@ -451,10 +451,10 @@ test_copy(int mode,
* Set all loc values to 1 so we can detect writing
* outside the hyperslab.
*/
for (u = 0; u < nx; u++) {
for (v = 0; v < ny; v++) {
for (w = 0; w < nz; w++) {
dst[u * ny * nz + v * nz + w] = 1;
for (u=0; u<nx; u++) {
for (v=0; v<ny; v++) {
for (w=0; w<nz; w++) {
dst[u*ny*nz + v*nz + w] = 1;
}
}
}
@ -476,10 +476,10 @@ test_copy(int mode,
for (v=dst_offset[1];
v<dst_offset[1]+dy;
v++) {
for (w = dst_offset[2];
w < dst_offset[2] + dz;
for (w=dst_offset[2];
w<dst_offset[2]+dz;
w++) {
acc += dst[u * ny * nz + v * nz + w];
acc += dst[u*ny*nz + v*nz + w];
}
}
}
@ -512,14 +512,21 @@ test_copy(int mode,
* we added the border of 1's to the hyperslab.
*/
acc = 0;
for (u = 0; u < nx; u++) {
for (v = 0; v < ny; v++) {
for (w = 0; w < nz; w++) {
acc += dst[u * ny * nz + v * nz + w];
for (u=0; u<nx; u++) {
for (v=0; v<ny; v++) {
for (w=0; w<nz; w++) {
acc += dst[u*ny*nz + v*nz + w];
}
}
}
if (acc != ref_value + nx*ny*nz - dx*dy*dz) {
/*
* The following casts are to work around an
* optimization bug in the Mongoose 7.20 Irix64
* compiler.
*/
if (acc+(unsigned)dx*(unsigned)dy*(unsigned)dz !=
ref_value + nx*ny*nz) {
puts("*FAILED*");
if (!isatty(1)) {
/*