@@ -595,12 +595,13 @@ int ompi_osc_ucx_accumulate(const void *origin_addr, int origin_count,
595
595
if ((op != & ompi_mpi_op_maxloc .op && op != & ompi_mpi_op_minloc .op ) ||
596
596
ompi_datatype_is_contiguous_memory_layout (temp_dt , temp_count )) {
597
597
size_t temp_size ;
598
+ char * curr_temp_addr = (char * )temp_addr ;
598
599
ompi_datatype_type_size (temp_dt , & temp_size );
599
600
while (origin_ucx_iov_idx < origin_ucx_iov_count ) {
600
601
int curr_count = origin_ucx_iov [origin_ucx_iov_idx ].len / temp_size ;
601
602
ompi_op_reduce (op , origin_ucx_iov [origin_ucx_iov_idx ].addr ,
602
- temp_addr , curr_count , temp_dt );
603
- temp_addr = ( void * )(( char * ) temp_addr + curr_count * temp_size ) ;
603
+ curr_temp_addr , curr_count , temp_dt );
604
+ curr_temp_addr += curr_count * temp_size ;
604
605
origin_ucx_iov_idx ++ ;
605
606
}
606
607
} else {
@@ -846,12 +847,13 @@ int ompi_osc_ucx_get_accumulate(const void *origin_addr, int origin_count,
846
847
if ((op != & ompi_mpi_op_maxloc .op && op != & ompi_mpi_op_minloc .op ) ||
847
848
ompi_datatype_is_contiguous_memory_layout (temp_dt , temp_count )) {
848
849
size_t temp_size ;
850
+ char * curr_temp_addr = (char * )temp_addr ;
849
851
ompi_datatype_type_size (temp_dt , & temp_size );
850
852
while (origin_ucx_iov_idx < origin_ucx_iov_count ) {
851
853
int curr_count = origin_ucx_iov [origin_ucx_iov_idx ].len / temp_size ;
852
854
ompi_op_reduce (op , origin_ucx_iov [origin_ucx_iov_idx ].addr ,
853
- temp_addr , curr_count , temp_dt );
854
- temp_addr = ( void * )(( char * ) temp_addr + curr_count * temp_size ) ;
855
+ curr_temp_addr , curr_count , temp_dt );
856
+ curr_temp_addr += curr_count * temp_size ;
855
857
origin_ucx_iov_idx ++ ;
856
858
}
857
859
} else {
0 commit comments