Author: goodell Date: 2012-11-20 16:20:54 -0600 (Tue, 20 Nov 2012) New Revision: 10635 Modified: mpich2/trunk/src/include/mpierrs.h mpich2/trunk/src/mpi/datatype/type_create_darray.c mpich2/trunk/src/mpi/datatype/type_create_subarray.c mpich2/trunk/src/mpi/spawn/comm_spawn_multiple.c mpich2/trunk/src/mpi/topo/graph_map.c Log: Added a parameter err_class to macro MPIR_ERRTEST_ARGNONPOS Subtle: also converts two error checks to use different classes at the same time. Contributed by IBM. Based on patch 0005 from code discussions. Modified: mpich2/trunk/src/include/mpierrs.h =================================================================== --- mpich2/trunk/src/include/mpierrs.h 2012-11-20 22:20:54 UTC (rev 10634) +++ mpich2/trunk/src/include/mpierrs.h 2012-11-20 22:20:54 UTC (rev 10635) @@ -143,12 +143,12 @@ goto fn_fail; \ } -#define MPIR_ERRTEST_ARGNONPOS(arg,arg_name,err) \ +#define MPIR_ERRTEST_ARGNONPOS(arg,arg_name,err,err_class) \ if ((arg) <= 0) { \ err = MPIR_Err_create_code(MPI_SUCCESS, \ MPIR_ERR_RECOVERABLE, \ FCNAME, __LINE__, \ - MPI_ERR_ARG, \ + err_class, \ "**argnonpos", \ "**argnonpos %s %d", \ arg_name, arg ); \ Modified: mpich2/trunk/src/mpi/datatype/type_create_darray.c =================================================================== --- mpich2/trunk/src/mpi/datatype/type_create_darray.c 2012-11-20 22:20:54 UTC (rev 10634) +++ mpich2/trunk/src/mpi/datatype/type_create_darray.c 2012-11-20 22:20:54 UTC (rev 10635) @@ -427,8 +427,8 @@ tmp_size = 1; for (i=0; mpi_errno == MPI_SUCCESS && i < ndims; i++) { - MPIR_ERRTEST_ARGNONPOS(array_of_gsizes[i], "gsize", mpi_errno); - MPIR_ERRTEST_ARGNONPOS(array_of_psizes[i], "psize", mpi_errno); + MPIR_ERRTEST_ARGNONPOS(array_of_gsizes[i], "gsize", mpi_errno, MPI_ERR_ARG); + MPIR_ERRTEST_ARGNONPOS(array_of_psizes[i], "psize", mpi_errno, MPI_ERR_ARG); if ((array_of_distribs[i] != MPI_DISTRIBUTE_NONE) && (array_of_distribs[i] != MPI_DISTRIBUTE_BLOCK) && Modified: mpich2/trunk/src/mpi/datatype/type_create_subarray.c =================================================================== --- mpich2/trunk/src/mpi/datatype/type_create_subarray.c 2012-11-20 22:20:54 UTC (rev 10634) +++ mpich2/trunk/src/mpi/datatype/type_create_subarray.c 2012-11-20 22:20:54 UTC (rev 10635) @@ -96,13 +96,13 @@ MPID_BEGIN_ERROR_CHECKS; { /* Check parameters */ - MPIR_ERRTEST_ARGNONPOS(ndims, "ndims", mpi_errno); + MPIR_ERRTEST_ARGNONPOS(ndims, "ndims", mpi_errno, MPI_ERR_DIMS); MPIR_ERRTEST_ARGNULL(array_of_sizes, "array_of_sizes", mpi_errno); MPIR_ERRTEST_ARGNULL(array_of_subsizes, "array_of_subsizes", mpi_errno); MPIR_ERRTEST_ARGNULL(array_of_starts, "array_of_starts", mpi_errno); for (i=0; mpi_errno == MPI_SUCCESS && i < ndims; i++) { - MPIR_ERRTEST_ARGNONPOS(array_of_sizes[i], "size", mpi_errno); - MPIR_ERRTEST_ARGNONPOS(array_of_subsizes[i], "subsize", mpi_errno); + MPIR_ERRTEST_ARGNONPOS(array_of_sizes[i], "size", mpi_errno, MPI_ERR_ARG); + MPIR_ERRTEST_ARGNONPOS(array_of_subsizes[i], "subsize", mpi_errno, MPI_ERR_ARG); MPIR_ERRTEST_ARGNEG(array_of_starts[i], "start", mpi_errno); if (array_of_subsizes[i] > array_of_sizes[i]) { mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, Modified: mpich2/trunk/src/mpi/spawn/comm_spawn_multiple.c =================================================================== --- mpich2/trunk/src/mpi/spawn/comm_spawn_multiple.c 2012-11-20 22:20:54 UTC (rev 10634) +++ mpich2/trunk/src/mpi/spawn/comm_spawn_multiple.c 2012-11-20 22:20:54 UTC (rev 10635) @@ -107,7 +107,7 @@ if (comm_ptr->rank == root) { MPIR_ERRTEST_ARGNULL(array_of_commands, "array_of_commands", mpi_errno); MPIR_ERRTEST_ARGNULL(array_of_maxprocs, "array_of_maxprocs", mpi_errno); - MPIR_ERRTEST_ARGNONPOS(count, "count", mpi_errno); + MPIR_ERRTEST_ARGNONPOS(count, "count", mpi_errno, MPI_ERR_COUNT); for (i = 0; i < count; i++) { MPIR_ERRTEST_INFO_OR_NULL(array_of_info[i], mpi_errno); Modified: mpich2/trunk/src/mpi/topo/graph_map.c =================================================================== --- mpich2/trunk/src/mpi/topo/graph_map.c 2012-11-20 22:20:54 UTC (rev 10634) +++ mpich2/trunk/src/mpi/topo/graph_map.c 2012-11-20 22:20:54 UTC (rev 10635) @@ -136,7 +136,7 @@ MPIR_ERRTEST_ARGNULL(newrank,"newrank",mpi_errno); MPIR_ERRTEST_ARGNULL(indx,"indx",mpi_errno); MPIR_ERRTEST_ARGNULL(edges,"edges",mpi_errno); - MPIR_ERRTEST_ARGNONPOS(nnodes,"nnodes",mpi_errno); + MPIR_ERRTEST_ARGNONPOS(nnodes,"nnodes",mpi_errno, MPI_ERR_ARG); } MPID_END_ERROR_CHECKS; }