CHECK_BUFFER(1, buf, count)\
CHECK_COUNT(2, count)\
CHECK_TYPE(3, datatype)\
- CHECK_PROC(4, dst)\
- CHECK_RANK(4, dst, comm)\
+ if(dst!= MPI_PROC_NULL)\
+ CHECK_RANK(4, dst, comm)\
CHECK_TAG(5, tag)\
CHECK_COMM(6)\
CHECK_BUFFER(1, buf, count)\
CHECK_COUNT(2, count)\
CHECK_TYPE(3, datatype)\
- CHECK_PROC(4, src)\
- if(src!=MPI_ANY_SOURCE)\
+ if(src!=MPI_ANY_SOURCE && src!=MPI_PROC_NULL)\
CHECK_RANK(4, src, comm)\
CHECK_TAG(5, tag)\
CHECK_COMM(6)
return MPI_ERR_ARG;
}
simgrid::smpi::Status::set_elements(status,datatype, count);
- return MPI_SUCCESS;
+ return MPI_SUCCESS;
+}
+
+int PMPI_Status_set_elements_x(MPI_Status* status, MPI_Datatype datatype, MPI_Count count){
+ if(status==MPI_STATUS_IGNORE){
+ return MPI_ERR_ARG;
+ }
+ simgrid::smpi::Status::set_elements(status,datatype, static_cast<int>(count));
+ return MPI_SUCCESS;
}
int PMPI_Grequest_start( MPI_Grequest_query_function *query_fn, MPI_Grequest_free_function *free_fn, MPI_Grequest_cancel_function *cancel_fn, void *extra_state, MPI_Request *request){