@@ -49,11 +49,12 @@ PROTOTYPE ERROR_CLASS gatherv(BUFFER sendbuf, COUNT sendcount, DATATYPE sendtype
4949 ptrdiff_t ext ;
5050
5151 size = ompi_comm_remote_size (comm );
52- ompi_datatype_type_extent (recvtype , & ext );
5352
5453 memchecker_comm (comm );
5554 if (OMPI_COMM_IS_INTRA (comm )) {
5655 if (ompi_comm_rank (comm ) == root ) {
56+ memchecker_datatype (recvtype );
57+ ompi_datatype_type_extent (recvtype , & ext );
5758 /* check whether root's send buffer is defined. */
5859 if (MPI_IN_PLACE == sendbuf ) {
5960 for (i = 0 ; i < size ; i ++ ) {
@@ -66,7 +67,6 @@ PROTOTYPE ERROR_CLASS gatherv(BUFFER sendbuf, COUNT sendcount, DATATYPE sendtype
6667 memchecker_call (& opal_memchecker_base_isdefined , sendbuf , sendcount , sendtype );
6768 }
6869
69- memchecker_datatype (recvtype );
7070 /* check whether root's receive buffer is addressable. */
7171 for (i = 0 ; i < size ; i ++ ) {
7272 memchecker_call (& opal_memchecker_base_isaddressable ,
@@ -82,6 +82,7 @@ PROTOTYPE ERROR_CLASS gatherv(BUFFER sendbuf, COUNT sendcount, DATATYPE sendtype
8282 if (MPI_ROOT == root ) {
8383 memchecker_datatype (recvtype );
8484 /* check whether root's receive buffer is addressable. */
85+ ompi_datatype_type_extent (recvtype , & ext );
8586 for (i = 0 ; i < size ; i ++ ) {
8687 memchecker_call (& opal_memchecker_base_isaddressable ,
8788 (char * )(recvbuf )+ displs [i ]* ext ,
0 commit comments