From b0e0e572e64d092bd2be3a6ac5dfbaabd5de20b8 Mon Sep 17 00:00:00 2001 From: Augustin Degomme Date: Mon, 7 Jun 2021 20:56:32 +0200 Subject: [PATCH] better check for mpi_datatype_null --- src/smpi/include/private.hpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/smpi/include/private.hpp b/src/smpi/include/private.hpp index d80b3045b3..4deaddd533 100644 --- a/src/smpi/include/private.hpp +++ b/src/smpi/include/private.hpp @@ -554,10 +554,6 @@ XBT_PRIVATE void private_execute_flops(double flops); CHECK_ARGS(init_flag, MPI_ERR_OTHER, "%s: MPI_Finalize was already called !", __func__) \ } -#define CHECK_MPI_NULL(num, val, err, ptr)\ - CHECK_ARGS((ptr) == (val), (err),\ - "%s: param %d %s cannot be %s", __func__, (num), _XBT_STRINGIFY(ptr), _XBT_STRINGIFY(val)) - #define CHECK_VAL(num, val, err, value)\ CHECK_ARGS((value) == (val), (err),\ "%s: param %d %s cannot be %s", __func__, (num), _XBT_STRINGIFY(value), _XBT_STRINGIFY(val)) @@ -566,6 +562,13 @@ XBT_PRIVATE void private_execute_flops(double flops); CHECK_ARGS((buf) == nullptr, (err),\ "%s: param %d %s cannot be NULL", __func__, (num), _XBT_STRINGIFY(buf)) +#define CHECK_MPI_NULL(num, val, err, ptr)\ + {\ + CHECK_ARGS((ptr) == (val), (err),\ + "%s: param %d %s cannot be %s", __func__, (num), _XBT_STRINGIFY(ptr), _XBT_STRINGIFY(val))\ + CHECK_NULL(num, err, ptr)\ + } + #define CHECK_NEGATIVE(num, err, val)\ CHECK_ARGS((val) < 0, (err),\ "%s: param %d %s cannot be negative", __func__, (num), _XBT_STRINGIFY(val)) @@ -622,8 +625,9 @@ XBT_PRIVATE void private_execute_flops(double flops); #define CHECK_TYPE(num, datatype)\ {\ - CHECK_ARGS(((datatype) == MPI_DATATYPE_NULL|| not (datatype)->is_valid()), MPI_ERR_TYPE,\ - "%s: param %d %s cannot be MPI_DATATYPE_NULL or invalid", __func__, (num), _XBT_STRINGIFY(datatype));\ + CHECK_MPI_NULL((num), MPI_DATATYPE_NULL, MPI_ERR_TYPE, (datatype))\ + CHECK_ARGS((not (datatype)->is_valid()), MPI_ERR_TYPE,\ + "%s: param %d %s is invalid", __func__, (num), _XBT_STRINGIFY(datatype));\ CHECK_DELETED((num), MPI_ERR_TYPE, datatype)\ if (not datatype->is_basic())\ simgrid::smpi::utils::set_current_handle(datatype);\ -- 2.20.1