|
13 | 13 | * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. |
14 | 14 | * Copyright (c) 2012-2017 Los Alamos National Security, LLC. All rights |
15 | 15 | * reserved. |
16 | | - * Copyright (c) 2014-2019 Research Organization for Information Science |
| 16 | + * Copyright (c) 2014-2023 Research Organization for Information Science |
17 | 17 | * and Technology (RIST). All rights reserved. |
18 | 18 | * Copyright (c) 2017 IBM Corporation. All rights reserved. |
19 | 19 | * $COPYRIGHT$ |
@@ -102,14 +102,15 @@ int MPI_Neighbor_alltoallv_init(const void *sendbuf, const int sendcounts[], con |
102 | 102 | } else if (! OMPI_COMM_IS_TOPO(comm)) { |
103 | 103 | return OMPI_ERRHANDLER_NOHANDLE_INVOKE(MPI_ERR_TOPOLOGY, |
104 | 104 | FUNC_NAME); |
105 | | - } else if ((NULL == sendcounts) || (NULL == sdispls) || |
106 | | - (NULL == recvcounts) || (NULL == rdispls) || |
107 | | - MPI_IN_PLACE == sendbuf || MPI_IN_PLACE == recvbuf) { |
108 | | - return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); |
109 | 105 | } |
110 | 106 |
|
111 | 107 | err = mca_topo_base_neighbor_count (comm, &indegree, &outdegree); |
112 | 108 | OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); |
| 109 | + if (((0 < outdegree) && ((NULL == sendcounts) || (NULL == sdispls))) || |
| 110 | + ((0 < indegree) && ((NULL == recvcounts) || (NULL == rdispls))) || |
| 111 | + MPI_IN_PLACE == sendbuf || MPI_IN_PLACE == recvbuf) { |
| 112 | + return OMPI_ERRHANDLER_INVOKE(comm, MPI_ERR_ARG, FUNC_NAME); |
| 113 | + } |
113 | 114 | for (i = 0; i < outdegree; ++i) { |
114 | 115 | OMPI_CHECK_DATATYPE_FOR_SEND(err, sendtype, sendcounts[i]); |
115 | 116 | OMPI_ERRHANDLER_CHECK(err, comm, err, FUNC_NAME); |
|
0 commit comments