Some 64 bits architectures support pointer aligned on 4 bytes
(where the sizeof(long) is 8). On such architectures dont assert if the datatype representation is not aligned on 64 bits. This commit was SVN r20134.
Этот коммит содержится в:
родитель
db424282f7
Коммит
f9a1700f55
@ -55,7 +55,7 @@ typedef struct __dt_args {
|
||||
* copy the buffer into an aligned buffer first.
|
||||
*/
|
||||
#if OMPI_ALIGN_WORD_SIZE_INTEGERS
|
||||
#define OMPI_DDT_ALIGN_INT(VALUE, TYPE) \
|
||||
#define OMPI_DDT_ALIGN_INT(VALUE, TYPE) \
|
||||
(VALUE) = OPAL_ALIGN((VALUE), sizeof(MPI_Aint), (TYPE))
|
||||
#define OMPI_DDT_ALIGN_PTR(PTR, TYPE) \
|
||||
(PTR) = OPAL_ALIGN_PTR((PTR), sizeof(MPI_Aint), (TYPE))
|
||||
@ -228,11 +228,13 @@ int32_t ompi_ddt_set_args( ompi_datatype_t* pData,
|
||||
*/
|
||||
OBJ_RETAIN( d[pos] );
|
||||
pArgs->total_pack_size += ((ompi_ddt_args_t*)d[pos]->args)->total_pack_size;
|
||||
#if OMPI_ALIGN_WORD_SIZE_INTEGERS
|
||||
/* as total_pack_size is always aligned to MPI_Aint size their sum
|
||||
* will be aligned to ...
|
||||
*/
|
||||
assert( pArgs->total_pack_size ==
|
||||
OPAL_ALIGN(pArgs->total_pack_size, sizeof(MPI_Aint), int) );
|
||||
#endif /* OMPI_ALIGN_WORD_SIZE_INTEGERS */
|
||||
}
|
||||
}
|
||||
return MPI_SUCCESS;
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user