From 169754fb4cc42a0bdd56be610d6a9d40f9d9e331 Mon Sep 17 00:00:00 2001 From: Paul Harten Date: Mon, 8 Mar 1999 14:02:43 -0500 Subject: [svn-r1119] Purpose: Bug fix Problem: On Solaris2.5, once the library has been compilied with any type of optimization, a bus error comes up in the "dtypes" test. Solution: The problem appears to be in the compilers' version of memcpy() that is used when optimized. Instead of substituting HDmemmove(), on Solaris, the problem is also taken care of by preparing the second argument to HDmemcpy(). The datatype pointer is copied to a separate char pointer which is then used as the second argument to HDmemcpy(). For some reason, it isn't enough to simply cast the datatype pointer. Platform tested: Solaris2.5 --- src/H5Tconv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/H5Tconv.c b/src/H5Tconv.c index 711c0ec..f340674 100644 --- a/src/H5Tconv.c +++ b/src/H5Tconv.c @@ -270,6 +270,7 @@ static intn interface_initialize_g = 0; hbool_t s_mv, d_mv; /*move data to align it? */ \ size_t dt_size=sizeof(DT); /*needed by CI_END macro */ \ H5T_conv_hw_t *priv = cdata->priv; /*private data */ \ + char *nonaligned; /*temporary char pointer */ \ \ switch (cdata->command) { \ case H5T_CONV_INIT: \ @@ -305,8 +306,9 @@ static intn interface_initialize_g = 0; if (d_mv) priv->d_aligned += nelmts; \ for (elmtno=0; elmtno