@@ -49,11 +49,12 @@ PROTOTYPE ERROR_CLASS gatherv(BUFFER sendbuf, COUNT sendcount, DATATYPE sendtype
49
49
ptrdiff_t ext ;
50
50
51
51
size = ompi_comm_remote_size (comm );
52
- ompi_datatype_type_extent (recvtype , & ext );
53
52
54
53
memchecker_comm (comm );
55
54
if (OMPI_COMM_IS_INTRA (comm )) {
56
55
if (ompi_comm_rank (comm ) == root ) {
56
+ memchecker_datatype (recvtype );
57
+ ompi_datatype_type_extent (recvtype , & ext );
57
58
/* check whether root's send buffer is defined. */
58
59
if (MPI_IN_PLACE == sendbuf ) {
59
60
for (i = 0 ; i < size ; i ++ ) {
@@ -66,7 +67,6 @@ PROTOTYPE ERROR_CLASS gatherv(BUFFER sendbuf, COUNT sendcount, DATATYPE sendtype
66
67
memchecker_call (& opal_memchecker_base_isdefined , sendbuf , sendcount , sendtype );
67
68
}
68
69
69
- memchecker_datatype (recvtype );
70
70
/* check whether root's receive buffer is addressable. */
71
71
for (i = 0 ; i < size ; i ++ ) {
72
72
memchecker_call (& opal_memchecker_base_isaddressable ,
@@ -82,6 +82,7 @@ PROTOTYPE ERROR_CLASS gatherv(BUFFER sendbuf, COUNT sendcount, DATATYPE sendtype
82
82
if (MPI_ROOT == root ) {
83
83
memchecker_datatype (recvtype );
84
84
/* check whether root's receive buffer is addressable. */
85
+ ompi_datatype_type_extent (recvtype , & ext );
85
86
for (i = 0 ; i < size ; i ++ ) {
86
87
memchecker_call (& opal_memchecker_base_isaddressable ,
87
88
(char * )(recvbuf )+ displs [i ]* ext ,
0 commit comments