MPI_Datatype sendtmptype = sendtype;
if (sendbuf == MPI_IN_PLACE) {
sendtmpbuf = static_cast<void*>(xbt_malloc(recvcount * comm->size() * recvtype->size()));
- memcpy(sendtmpbuf, recvbuf, recvcount * comm->size() * recvtype->size());
+ //memcpy(??,nullptr,0) is actually undefined behavor, even if harmless.
+ if(recvbuf != nullptr)
+ memcpy(sendtmpbuf, recvbuf, recvcount * comm->size() * recvtype->size());
sendtmpcount = recvcount;
sendtmptype = recvtype;
}