mpi-buffer-deref¶
此检查验证传递给 MPI(消息传递接口)函数的缓冲区是否被充分解引用。缓冲区应作为单个指针或数组传递。由于 MPI 函数签名为其缓冲区类型指定了 void *
,因此未充分解引用的缓冲区可以传递,例如作为双指针或多维数组,而不会发出编译器警告。
示例
// A double pointer is passed to the MPI function.
char *buf;
MPI_Send(&buf, 1, MPI_CHAR, 0, 0, MPI_COMM_WORLD);
// A multidimensional array is passed to the MPI function.
short buf[1][1];
MPI_Send(buf, 1, MPI_SHORT, 0, 0, MPI_COMM_WORLD);
// A pointer to an array is passed to the MPI function.
short *buf[1];
MPI_Send(buf, 1, MPI_SHORT, 0, 0, MPI_COMM_WORLD);