X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9b73466ada27682d1729f394549479da83ef4a99..bb12a168512ced7a0f1e4924d367c87ed7c22d1c:/teshsuite/smpi/mpich3-test/f77/attr/typeattr2f.f diff --git a/teshsuite/smpi/mpich3-test/f77/attr/typeattr2f.f b/teshsuite/smpi/mpich3-test/f77/attr/typeattr2f.f index 5fbbdbbf52..7918b455a5 100644 --- a/teshsuite/smpi/mpich3-test/f77/attr/typeattr2f.f +++ b/teshsuite/smpi/mpich3-test/f77/attr/typeattr2f.f @@ -1,4 +1,4 @@ -C -*- Mode: Fortran; -*- +C -*- Mode: Fortran; -*- C C (C) 2003 by Argonne National Laboratory. C See COPYRIGHT in top-level directory. @@ -17,15 +17,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_DUP_FN, - & MPI_TYPE_NULL_DELETE_FN, keyval, + call mpi_type_create_keyval( MPI_TYPE_DUP_FN, + & MPI_TYPE_NULL_DELETE_FN, keyval, & extrastate, ierr ) flag = .true. call mpi_type_get_attr( type1, keyval, valout, flag, ierr ) @@ -41,10 +41,10 @@ C call mpi_type_get_attr( type1, keyval, valout, flag, ierr ) if (valout .ne. 2003) then errs = errs + 1 - print *, 'Unexpected value (should be 2003)', valout, + print *, 'Unexpected value (should be 2003)', valout, & ' from attr' endif - + valin = 2001 call mpi_type_set_attr( type1, keyval, valin, ierr ) flag = .false. @@ -52,10 +52,10 @@ C call mpi_type_get_attr( type1, keyval, valout, flag, ierr ) if (valout .ne. 2001) then errs = errs + 1 - print *, 'Unexpected value (should be 2001)', valout, + print *, 'Unexpected value (should be 2001)', valout, & ' from attr' endif - + C C Test the copy function valin = 5001 @@ -73,7 +73,7 @@ C Test the copy function errs = errs + 1 print *, 'Unexpected output value in type2 ', valout endif -C Test the delete function +C Test the delete function call mpi_type_free( type2, ierr ) C C Test the attr delete function @@ -89,6 +89,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 )