#include <stdio.h>
typedef int MPI_Datatype;
typedef int MPI_Comm;
int MPI_Send(const void* buf, int count, MPI_Datatype datatype, int dest,
int tag, MPI_Comm comm)
{
printf("MPI_Send(count = %d)\n", count);
return 0;
}
int MPI_Send_x(const void* buf, long long count, MPI_Datatype datatype, int dest,
int tag, MPI_Comm comm)
{
printf("MPI_Send_x(count = %lld)\n", count);
return 0;
}
#define MPI_Send(buf, count, datatype, dest, tag, comm) MPI_Send_x(buf, count, datatype, dest, tag, comm)
int main(int argc, char *argv[]) {
/* 8589934592LL == 2^33 */
long long i = 8589934592LL + 11;
int ret;
int (*snd_ptr)(const void*, int, MPI_Datatype, int, int, MPI_Comm) = &MPI_Send;
ret = MPI_Send(NULL, i, 0, 0, 0, 0);
ret = MPI_Send(NULL, 5, 0, 0, 0, 0);
ret = (*snd_ptr)(NULL, i, 0, 0, 0, 0);
ret = (*snd_ptr)(NULL, 5, 0, 0, 0, 0);
return 0;
}
MPI_Send_x(count = 8589934603)
MPI_Send_x(count = 5)
MPI_Send(count = 11)
MPI_Send(count = 5)