- smx_synchro_t comm_addr = nullptr;
- if (call_type == MC_CALL_TYPE_WAIT)
- comm_addr = simcall_comm_wait__get__comm(req);
- else
- // comm_addr = REMOTE(xbt_dynar_get_as(simcall_comm_waitany__get__comms(req), value, smx_synchro_t)):
- simgrid::mc::read_element(mc_model_checker->process(), &comm_addr,
- remote(simcall_comm_waitany__get__comms(req)), value, sizeof(comm_addr));
- MC_complete_comm_pattern(pattern, comm_addr,
+ simgrid::mc::RemotePtr<simgrid::kernel::activity::CommImpl> comm_addr{nullptr};
+ if (call_type == MC_CALL_TYPE_WAIT)
+ comm_addr = remote(static_cast<simgrid::kernel::activity::CommImpl*>(simcall_comm_wait__getraw__comm(req)));
+
+ else {
+ simgrid::kernel::activity::CommImpl* addr;
+ // comm_addr = REMOTE(xbt_dynar_get_as(simcall_comm_waitany__get__comms(req), value, smx_synchro_t)):
+ simgrid::mc::read_element(mc_model_checker->process(), &addr, remote(simcall_comm_waitany__get__comms(req)),
+ value, sizeof(comm_addr));
+ comm_addr = remote(addr);
+ }
+ checker->complete_comm_pattern(pattern, comm_addr,