-#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_NULL(num,err,buf) \
- CHECK_ARGS((buf) == nullptr, (err), \
- "%s: param %d %s cannot be NULL", __func__, (num), _XBT_STRINGIFY(buf));
-#define CHECK_NEGATIVE(num, err, val) \
- CHECK_ARGS((val) < 0, (err), \
- "%s: param %d %s cannot be negative", __func__, (num), _XBT_STRINGIFY(val));
-#define CHECK_COMM2(num, comm) \
+#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))
+
+#define CHECK_NULL(num,err,buf)\
+ 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))
+
+#define CHECK_NEGATIVE_OR_ZERO(num, err, val)\
+ CHECK_ARGS((val) <= 0, (err),\
+ "%s: param %d %s cannot be negative or 0", __func__, (num), _XBT_STRINGIFY(val))
+
+#define CHECK_COMM2(num, comm)\