X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2b01c6a976ad7d34541be047093ff2ccdc2490c2..5eca5225831a402a9033e46f8f625bcd46f83f80:/src/smpi/bindings/smpi_pmpi_win.cpp diff --git a/src/smpi/bindings/smpi_pmpi_win.cpp b/src/smpi/bindings/smpi_pmpi_win.cpp index c56066646f..15e008f309 100644 --- a/src/smpi/bindings/smpi_pmpi_win.cpp +++ b/src/smpi/bindings/smpi_pmpi_win.cpp @@ -324,11 +324,13 @@ int PMPI_Raccumulate(const void *origin_addr, int origin_count, MPI_Datatype ori int PMPI_Get_accumulate(const void *origin_addr, int origin_count, MPI_Datatype origin_datatype, void *result_addr, int result_count, MPI_Datatype result_datatype, int target_rank, MPI_Aint target_disp, int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win){ - CHECK_COUNT(2, origin_count) - if(origin_count>0) - CHECK_TYPE(3, origin_datatype) - if (op != MPI_NO_OP) + + if (op != MPI_NO_OP){ CHECK_BUFFER(1, origin_addr, origin_count, origin_datatype) + CHECK_COUNT(2, origin_count) + if(origin_count>0) + CHECK_TYPE(3, origin_datatype) + } CHECK_COUNT(5, result_count) CHECK_TYPE(6, result_datatype) CHECK_BUFFER(4, result_addr, result_count, result_datatype) @@ -366,9 +368,12 @@ int result_count, MPI_Datatype result_datatype, int target_rank, MPI_Aint target MPI_Datatype target_datatype, MPI_Op op, MPI_Win win, MPI_Request* request){ if(target_rank==MPI_PROC_NULL) *request = MPI_REQUEST_NULL; - CHECK_COUNT(2, origin_count) - CHECK_TYPE(3, origin_datatype) - CHECK_BUFFER(1, origin_addr, origin_count, origin_datatype) + if (op != MPI_NO_OP){ + CHECK_BUFFER(1, origin_addr, origin_count, origin_datatype) + CHECK_COUNT(2, origin_count) + if(origin_count>0) + CHECK_TYPE(3, origin_datatype) + } CHECK_COUNT(5, result_count) CHECK_TYPE(6, result_datatype) CHECK_BUFFER(4, result_addr, result_count, result_datatype)