Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix a FIXME.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 6 May 2019 09:12:16 +0000 (11:12 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 6 May 2019 11:49:56 +0000 (13:49 +0200)
src/mc/checker/CommunicationDeterminismChecker.cpp
src/mc/remote/RemotePtr.hpp

index 53793f0..153ad68 100644 (file)
@@ -196,8 +196,9 @@ void CommunicationDeterminismChecker::get_comm_pattern(smx_simcall_t request, e_
     pattern->src_host = MC_smx_actor_get_host_name(issuer);
 
 #if HAVE_SMPI
-    simgrid::smpi::Request mpi_request = mc_model_checker->process().read<simgrid::smpi::Request>(
-        RemotePtr<simgrid::smpi::Request>((std::uint64_t)simcall_comm_isend__get__data(request)));
+    simgrid::smpi::Request mpi_request;
+    mc_model_checker->process().read(
+        &mpi_request, remote(static_cast<simgrid::smpi::Request*>(simcall_comm_isend__get__data(request))));
     pattern->tag = mpi_request.tag();
 #endif
 
@@ -224,8 +225,8 @@ void CommunicationDeterminismChecker::get_comm_pattern(smx_simcall_t request, e_
 
 #if HAVE_SMPI
     simgrid::smpi::Request mpi_request;
-    mc_model_checker->process().read(&mpi_request,
-                                     remote((simgrid::smpi::Request*)simcall_comm_irecv__get__data(request)));
+    mc_model_checker->process().read(
+        &mpi_request, remote(static_cast<simgrid::smpi::Request*>(simcall_comm_irecv__get__data(request))));
     pattern->tag = mpi_request.tag();
 #endif
 
index 5d13c42..de93572 100644 (file)
@@ -49,8 +49,7 @@ public:
   std::size_t getBufferSize() const { return sizeof(T); }
   operator T() const
   {
-//FIXME: assert turned off because smpi:Request is not seen as "trivial".
-//    static_assert(std::is_trivial<T>::value, "Cannot convert non trivial type");
+    static_assert(std::is_trivial<T>::value, "Cannot convert non trivial type");
     return buffer;
   }
   void clear() { std::memset(static_cast<void*>(&buffer), 0, sizeof(T)); }