@@ -64,18 +64,13 @@ int MPI_Neighbor_alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendt
64
64
/* Unrooted operation -- same checks for all ranks on both
65
65
intracommunicators and intercommunicators */
66
66
67
- if (MPI_IN_PLACE == sendbuf ) {
68
- sendcount = recvcount ;
69
- sendtype = recvtype ;
70
- }
71
-
72
67
err = MPI_SUCCESS ;
73
68
OMPI_ERR_INIT_FINALIZE (FUNC_NAME );
74
69
if (ompi_comm_invalid (comm ) || !(OMPI_COMM_IS_CART (comm ) || OMPI_COMM_IS_GRAPH (comm ) ||
75
70
OMPI_COMM_IS_DIST_GRAPH (comm ))) {
76
71
return OMPI_ERRHANDLER_INVOKE (MPI_COMM_WORLD , MPI_ERR_COMM ,
77
72
FUNC_NAME );
78
- } else if (MPI_IN_PLACE == recvbuf ) {
73
+ } else if (MPI_IN_PLACE == sendbuf || MPI_IN_PLACE == recvbuf ) {
79
74
return OMPI_ERRHANDLER_INVOKE (MPI_COMM_WORLD , MPI_ERR_ARG ,
80
75
FUNC_NAME );
81
76
} else {
@@ -85,7 +80,7 @@ int MPI_Neighbor_alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendt
85
80
OMPI_ERRHANDLER_CHECK (err , comm , err , FUNC_NAME );
86
81
}
87
82
88
- if (MPI_IN_PLACE != sendbuf && !OMPI_COMM_IS_INTER (comm )) {
83
+ if (!OMPI_COMM_IS_INTER (comm )) {
89
84
ompi_datatype_type_size (sendtype , & sendtype_size );
90
85
ompi_datatype_type_size (recvtype , & recvtype_size );
91
86
if ((sendtype_size * sendcount ) != (recvtype_size * recvcount )) {
@@ -98,8 +93,7 @@ int MPI_Neighbor_alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendt
98
93
99
94
ompi_datatype_type_size (sendtype , & sendtype_size );
100
95
ompi_datatype_type_size (recvtype , & recvtype_size );
101
- if (((MPI_IN_PLACE == sendbuf ) ||
102
- (0 == sendcount ) || (0 == sendtype_size )) &&
96
+ if (((0 == sendcount ) || (0 == sendtype_size )) &&
103
97
((0 == recvcount ) || 0 == (recvtype_size ))) {
104
98
return MPI_SUCCESS ;
105
99
}
0 commit comments