Skip to content

Commit f14a0f4

Browse files
author
Risto Toijala
committed
mpi/fortran: Fix valgrind warnings for type create
Valgrind warns that *newtype is uninitialized when calling from Fortran as e.g. use mpi integer :: t, err call MPI_Type_create_f90_integer(5, t, err) Since newtype is intent(out), this should not happen. There is no reason to convert the type using PMPI_Type_f2c, only to over- write it immediately afterwards. The other type_create_* functions did not convert newtype. The valgrind warnings: ==28441== Conditional jump or move depends on uninitialised value(s) ==28441== at 0x581B555: PMPI_Type_f2c (in [...]/lib/libmpi.so.0.0.0) ==28441== by 0x4E87AB7: MPI_TYPE_CREATE_F90_INTEGER (in [...]/lib/libmpi_mpifh.so.0.0.0) ==28441== by 0x400BA1: MAIN__ (in [...]) ==28441== by 0x400C46: main (in [...]) ==28441== ==28441== Conditional jump or move depends on uninitialised value(s) ==28441== at 0x581B563: PMPI_Type_f2c (in [...]/lib/libmpi.so.0.0.0) ==28441== by 0x4E87AB7: MPI_TYPE_CREATE_F90_INTEGER (in [...]/lib/libmpi_mpifh.so.0.0.0) ==28441== by 0x400BA1: MAIN__ (in [..]) ==28441== by 0x400C46: main (in [...]) ==28441== ==28441== Use of uninitialised value of size 8 ==28441== at 0x581B577: PMPI_Type_f2c (in [...]/lib/libmpi.so.0.0.0) ==28441== by 0x4E87AB7: MPI_TYPE_CREATE_F90_INTEGER (in [...]/lib/libmpi_mpifh.so.0.0.0) ==28441== by 0x400BA1: MAIN__ (in [...]) ==28441== by 0x400C46: main (in [...]) ==28441== Signed-off-by: Risto Toijala <risto.toijala@gmail.com>
1 parent acc2a70 commit f14a0f4

File tree

4 files changed

+4
-4
lines changed

4 files changed

+4
-4
lines changed

ompi/mpi/fortran/mpif-h/type_create_f90_complex_f.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ void ompi_type_create_f90_complex_f(MPI_Fint *p, MPI_Fint *r,
7070
MPI_Fint *newtype, MPI_Fint *ierr)
7171
{
7272
int c_ierr;
73-
MPI_Datatype c_newtype = PMPI_Type_f2c(*newtype);
73+
MPI_Datatype c_newtype;
7474

7575
c_ierr = PMPI_Type_create_f90_complex(OMPI_FINT_2_INT(*p),
7676
OMPI_FINT_2_INT(*r),

ompi/mpi/fortran/mpif-h/type_create_f90_integer_f.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ void ompi_type_create_f90_integer_f(MPI_Fint *r, MPI_Fint *newtype,
7070
MPI_Fint *ierr)
7171
{
7272
int c_ierr;
73-
MPI_Datatype c_new = PMPI_Type_f2c(*newtype);
73+
MPI_Datatype c_new;
7474

7575
c_ierr = PMPI_Type_create_f90_integer(OMPI_FINT_2_INT(*r), &c_new);
7676
if (NULL != ierr) *ierr = OMPI_INT_2_FINT(c_ierr);

ompi/mpi/fortran/mpif-h/type_create_f90_real_f.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ void ompi_type_create_f90_real_f(MPI_Fint *p, MPI_Fint *r,
7070
MPI_Fint *newtype, MPI_Fint *ierr)
7171
{
7272
int c_ierr;
73-
MPI_Datatype c_new = PMPI_Type_f2c(*newtype);
73+
MPI_Datatype c_new;
7474

7575
c_ierr = PMPI_Type_create_f90_real(OMPI_FINT_2_INT(*p),
7676
OMPI_FINT_2_INT(*r),

ompi/mpi/fortran/mpif-h/type_create_hindexed_f.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ void ompi_type_create_hindexed_f(MPI_Fint *count,
7575
{
7676
int c_ierr;
7777
MPI_Datatype c_old = PMPI_Type_f2c(*oldtype);
78-
MPI_Datatype c_new = PMPI_Type_f2c(*newtype);
78+
MPI_Datatype c_new;
7979
OMPI_ARRAY_NAME_DECL(array_of_blocklengths);
8080

8181
OMPI_ARRAY_FINT_2_INT(array_of_blocklengths, *count);

0 commit comments

Comments
 (0)