Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
check that we are not using RMA-reserved MPI_Op in non-RMA calls.
[simgrid.git] / src / smpi / include / private.hpp
index 4abec6c..d80b304 100644 (file)
@@ -117,7 +117,7 @@ XBT_PRIVATE double smpi_cfg_auto_shared_malloc_thresh();
 XBT_PRIVATE bool smpi_cfg_display_alloc();
 
 // utilities
-XBT_PRIVATE void smpi_init_options_internal(bool called_by_smpimain);
+XBT_PRIVATE void smpi_init_options_internal(bool called_by_smpi_main);
 
 extern XBT_PRIVATE char* smpi_data_exe_start; // start of the data+bss segment of the executable
 extern XBT_PRIVATE size_t smpi_data_exe_size; // size of the data+bss segment of the executable
@@ -632,6 +632,8 @@ XBT_PRIVATE void private_execute_flops(double flops);
 #define CHECK_OP(num, op, type)\
   {\
   CHECK_MPI_NULL((num), MPI_OP_NULL, MPI_ERR_OP, (op))\
+  CHECK_ARGS((op == MPI_REPLACE || op == MPI_NO_OP), MPI_ERR_OP,\
+             "%s: param %d op %s cannot be used in non RMA calls", __func__, (num), _XBT_STRINGIFY(op));\
   CHECK_DELETED((num), MPI_ERR_OP, op)\
   if (not op->is_predefined())\
     simgrid::smpi::utils::set_current_handle(op);\