X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9deda161a84a426d0ea75ec4bd9b8cdc3a4b28fb..bb12a168512ced7a0f1e4924d367c87ed7c22d1c:/teshsuite/smpi/mpich3-test/f77/attr/typeattr3f.f diff --git a/teshsuite/smpi/mpich3-test/f77/attr/typeattr3f.f b/teshsuite/smpi/mpich3-test/f77/attr/typeattr3f.f index 5d30e70f61..0282f41147 100644 --- a/teshsuite/smpi/mpich3-test/f77/attr/typeattr3f.f +++ b/teshsuite/smpi/mpich3-test/f77/attr/typeattr3f.f @@ -1,4 +1,4 @@ -C -*- Mode: Fortran; -*- +C -*- Mode: Fortran; -*- C C (C) 2004 by Argonne National Laboratory. C See COPYRIGHT in top-level directory. @@ -19,15 +19,15 @@ C C The only difference between the MPI-2 and MPI-1 attribute caching C routines in Fortran is that the take an address-sized integer C instead of a simple integer. These still are not pointers, -C so the values are still just integers. +C so the values are still just integers. C errs = 0 call mtest_init( ierr ) type1 = MPI_INTEGER -C +C extrastate = 1001 - call mpi_type_create_keyval( MPI_TYPE_NULL_COPY_FN, - & MPI_TYPE_NULL_DELETE_FN, keyval, + call mpi_type_create_keyval( MPI_TYPE_NULL_COPY_FN, + & MPI_TYPE_NULL_DELETE_FN, keyval, & extrastate, ierr ) flag = .true. call mpi_type_get_attr( type1, keyval, valout, flag, ierr ) @@ -40,7 +40,7 @@ C Test the null copy function valin = 5001 call mpi_type_set_attr( type1, keyval, valin, ierr ) call mpi_type_dup( type1, type2, ierr ) -C Because we set NULL_COPY_FN, the attribute should not +C Because we set NULL_COPY_FN, the attribute should not C appear on the dup'ed communicator flag = .false. call mpi_type_get_attr( type1, keyval, valout, flag, ierr ) @@ -54,7 +54,7 @@ C appear on the dup'ed communicator errs = errs + 1 print *, ' Attribute incorrectly present on dup datatype' endif -C Test the delete function +C Test the delete function call mpi_type_free( type2, ierr ) C C Test the attr delete function @@ -70,6 +70,14 @@ C Test the attr delete function print *, ' Delete_attr did not delete attribute' endif call mpi_type_free( type2, ierr ) +C +C Avoid memory leak + ierr = -1 + call mpi_type_delete_attr( type1, keyval, ierr ) + if (ierr .ne. MPI_SUCCESS) then + errs = errs + 1 + call mtestprinterror( ierr ) + endif C ierr = -1 call mpi_type_free_keyval( keyval, ierr )