@@ -510,12 +510,13 @@ int ompi_osc_ucx_accumulate(const void *origin_addr, int origin_count,
510
510
if ((op != & ompi_mpi_op_maxloc .op && op != & ompi_mpi_op_minloc .op ) ||
511
511
ompi_datatype_is_contiguous_memory_layout (temp_dt , temp_count )) {
512
512
size_t temp_size ;
513
+ char * curr_temp_addr = (char * )temp_addr ;
513
514
ompi_datatype_type_size (temp_dt , & temp_size );
514
515
while (origin_ucx_iov_idx < origin_ucx_iov_count ) {
515
516
int curr_count = origin_ucx_iov [origin_ucx_iov_idx ].len / temp_size ;
516
517
ompi_op_reduce (op , origin_ucx_iov [origin_ucx_iov_idx ].addr ,
517
- temp_addr , curr_count , temp_dt );
518
- temp_addr = ( void * )(( char * ) temp_addr + curr_count * temp_size ) ;
518
+ curr_temp_addr , curr_count , temp_dt );
519
+ curr_temp_addr += curr_count * temp_size ;
519
520
origin_ucx_iov_idx ++ ;
520
521
}
521
522
} else {
@@ -730,12 +731,13 @@ int ompi_osc_ucx_get_accumulate(const void *origin_addr, int origin_count,
730
731
if ((op != & ompi_mpi_op_maxloc .op && op != & ompi_mpi_op_minloc .op ) ||
731
732
ompi_datatype_is_contiguous_memory_layout (temp_dt , temp_count )) {
732
733
size_t temp_size ;
734
+ char * curr_temp_addr = (char * )temp_addr ;
733
735
ompi_datatype_type_size (temp_dt , & temp_size );
734
736
while (origin_ucx_iov_idx < origin_ucx_iov_count ) {
735
737
int curr_count = origin_ucx_iov [origin_ucx_iov_idx ].len / temp_size ;
736
738
ompi_op_reduce (op , origin_ucx_iov [origin_ucx_iov_idx ].addr ,
737
- temp_addr , curr_count , temp_dt );
738
- temp_addr = ( void * )(( char * ) temp_addr + curr_count * temp_size ) ;
739
+ curr_temp_addr , curr_count , temp_dt );
740
+ curr_temp_addr += curr_count * temp_size ;
739
741
origin_ucx_iov_idx ++ ;
740
742
}
741
743
} else {
0 commit comments