This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "MPICH primary repository". The branch, master has been updated via fb17d2b05e9c55781ab3b22a8f50440e9878d46b (commit) from 8c5ab38319b3ac34ed4e7a37a265b4a166baaf33 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.mpich.org/mpich.git/commitdiff/fb17d2b05e9c55781ab3b22a8f50440e98... commit fb17d2b05e9c55781ab3b22a8f50440e9878d46b Author: Junchao Zhang <[email protected]> Date: Tue Dec 31 12:41:28 2013 -0600 Disable Clang's type checking for MPI_2INT Type checking for MPI_2INT is commented out because Clang 3.3 flags struct {int i1; int i2;} as different from int[2]. But actually these two types are of the same layout. Clang gives a type mismatch warning for a definitely correct code like the following: int in[2], out[2]; MPI_Reduce(in, out, 1, MPI_2INT, MPI_MAXLOC, 0, MPI_COMM_WORLD); So, we disable type checking for MPI_2INT until Clang fixes this bug. Fixes #1993 Signed off by Rajeev Thakur <[email protected]> diff --git a/src/include/mpi.h.in b/src/include/mpi.h.in index 1b9ad19..62fa0a9 100644 --- a/src/include/mpi.h.in +++ b/src/include/mpi.h.in @@ -168,7 +168,21 @@ static const MPI_Datatype mpich_mpi_float_int MPICH_ATTR_TYPE_TAG_LAYOUT_C static const MPI_Datatype mpich_mpi_double_int MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(struct mpich_struct_mpi_double_int) = MPI_DOUBLE_INT; static const MPI_Datatype mpich_mpi_long_int MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(struct mpich_struct_mpi_long_int) = MPI_LONG_INT; static const MPI_Datatype mpich_mpi_short_int MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(struct mpich_struct_mpi_short_int) = MPI_SHORT_INT; -static const MPI_Datatype mpich_mpi_2int MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(struct mpich_struct_mpi_2int) = MPI_2INT; + +/* + * The MPI_2INT line is commented out because currently Clang 3.3 flags + * struct {int i1; int i2;} as different from int[2]. But actually these + * two types are of the same layout. Clang gives a type mismatch warning + * for a definitely correct code like the following: + * int in[2], out[2]; + * MPI_Reduce(in, out, 1, MPI_2INT, MPI_MAXLOC, 0, MPI_COMM_WORLD); + * + * So, we disable type checking for MPI_2INT until Clang fixes this bug. + */ + +/* static const MPI_Datatype mpich_mpi_2int MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(struct mpich_struct_mpi_2int) = MPI_2INT + */ + #if @MPI_LONG_DOUBLE_INT@ != 0x0c000000 static const MPI_Datatype mpich_mpi_long_double_int MPICH_ATTR_TYPE_TAG_LAYOUT_COMPATIBLE(struct mpich_struct_mpi_long_double_int) = MPI_LONG_DOUBLE_INT; #endif ----------------------------------------------------------------------- Summary of changes: src/include/mpi.h.in | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-) hooks/post-receive -- MPICH primary repository