Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Fix another signedness conversion issue with addresses on 32 bit
authorGabriel Corona <gabriel.corona@loria.fr>
Fri, 17 Jul 2015 08:21:39 +0000 (10:21 +0200)
committerGabriel Corona <gabriel.corona@loria.fr>
Fri, 17 Jul 2015 08:21:39 +0000 (10:21 +0200)
src/mc/mc_client_api.cpp
src/mc/mc_ignore.cpp
src/mc/mc_protocol.h
src/mc/mc_server.cpp

index f4bed1b..f48a80c 100644 (file)
@@ -58,7 +58,7 @@ void MC_ignore(void* addr, size_t size)
   if (mc_mode == MC_MODE_CLIENT) {
     s_mc_ignore_memory_message_t message;
     message.type = MC_MESSAGE_IGNORE_MEMORY;
-    message.addr = addr;
+    message.addr = (std::uintptr_t) addr;
     message.size = size;
     MC_client_send_message(&message, sizeof(message));
   }
index f1ac12e..1457fd4 100644 (file)
@@ -58,7 +58,7 @@ void MC_remove_ignore_heap(void *address, size_t size)
 
   s_mc_ignore_memory_message_t message;
   message.type = MC_MESSAGE_UNIGNORE_HEAP;
-  message.addr = address;
+  message.addr = (std::uintptr_t) address;
   message.size = size;
   MC_client_send_message(&message, sizeof(message));
 }
index 440c502..702b94a 100644 (file)
@@ -81,7 +81,7 @@ typedef struct s_mc_ignore_heap_message {
 
 typedef struct s_mc_ignore_memory_message {
   e_mc_message_type type;
-  void *addr;
+  uint64_t addr;
   size_t size;
 } s_mc_ignore_memory_message_t, *mc_ignore_memory_message_t;
 
index ba80984..020e170 100644 (file)
@@ -188,7 +188,8 @@ bool s_mc_server::handle_events()
           if (size != sizeof(message))
             xbt_die("Broken messsage");
           memcpy(&message, buffer, sizeof(message));
-          MC_heap_region_ignore_remove(message.addr, message.size);
+          MC_heap_region_ignore_remove(
+            (void *)(std::uintptr_t) message.addr, message.size);
           break;
         }
 
@@ -199,7 +200,7 @@ bool s_mc_server::handle_events()
             xbt_die("Broken messsage");
           memcpy(&message, buffer, sizeof(message));
           mc_model_checker->process().ignore_region(
-            (std::uint64_t)message.addr, message.size);
+            message.addr, message.size);
           break;
         }