From 4b6f1ba2e08c4768253250efe2a0e0e1c352eca5 Mon Sep 17 00:00:00 2001 From: George Bosilca Date: Fri, 22 Oct 2004 04:13:27 +0000 Subject: [PATCH] Add more cases to the copy_data function. Just a reminder there are architectures where the "long double" is 16 bytes and they HAVE TO be 16 bytes aligned. Others have the bool defined as a 8 bytes !!! Unbelievable !!! This commit was SVN r3280. --- src/datatype/dt_unpack.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/datatype/dt_unpack.c b/src/datatype/dt_unpack.c index bb2516c0ae..b791d869e7 100644 --- a/src/datatype/dt_unpack.c +++ b/src/datatype/dt_unpack.c @@ -462,6 +462,7 @@ COPY_CONTIGUOUS_BYTES( bytes, 4 ) COPY_CONTIGUOUS_BYTES( bytes, 8 ) COPY_CONTIGUOUS_BYTES( bytes, 12 ) COPY_CONTIGUOUS_BYTES( bytes, 16 ) +COPY_CONTIGUOUS_BYTES( bytes, 20 ) conversion_fct_t ompi_ddt_copy_functions[DT_MAX_PREDEFINED] = { (conversion_fct_t)NULL, /* DT_LOOP */ @@ -509,6 +510,8 @@ conversion_fct_t ompi_ddt_copy_functions[DT_MAX_PREDEFINED] = { (conversion_fct_t)copy_bytes_12, /* DT_LONG_DOUBLE_INT */ #elif (SIZEOF_LONG_DOUBLE + SIZEOF_INT) == 16 (conversion_fct_t)copy_bytes_16, /* DT_LONG_DOUBLE_INT */ +#elif (SIZEOF_LONG_DOUBLE + SIZEOF_INT) == 20 + (conversion_fct_t)copy_bytes_20, /* DT_LONG_DOUBLE_INT */ #else #error Complete me please #endif @@ -534,6 +537,8 @@ conversion_fct_t ompi_ddt_copy_functions[DT_MAX_PREDEFINED] = { (conversion_fct_t)copy_bytes_1, /* DT_CXX_BOOL */ #elif SIZEOF_BOOL == 4 (conversion_fct_t)copy_bytes_4, /* DT_CXX_BOOL */ +#elif SIZEOF_BOOL == 8 + (conversion_fct_t)copy_bytes_8, /* DT_CXX_BOOL */ #else #error Complete me please #endif