Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
mc: move some files related to ELF, DWARF or unwind reading into their own directory
[simgrid.git] / src / mc / mc_client_api.cpp
index aab4ac6..2bfe6b5 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2008-2017. The SimGrid Team.
+/* Copyright (c) 2008-2019. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -9,9 +9,10 @@
 #include <simgrid/modelchecker.h>
 
 #include "src/mc/ModelChecker.hpp"
-#include "src/mc/mc_ignore.h"
+#include "src/mc/mc_ignore.hpp"
 #include "src/mc/mc_private.hpp"
 #include "src/mc/mc_record.hpp"
+#include "src/mc/mc_replay.hpp"
 #include "src/mc/remote/Client.hpp"
 #include "src/mc/remote/mc_protocol.h"
 
@@ -29,8 +30,12 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_client_api, mc,
 void MC_assert(int prop)
 {
   xbt_assert(mc_model_checker == nullptr);
-  if (MC_is_active() && not prop)
-    simgrid::mc::Client::get()->reportAssertionFailure();
+  if (not prop) {
+    if (MC_is_active())
+      simgrid::mc::Client::get()->reportAssertionFailure();
+    if (MC_record_replay_is_active())
+      xbt_die("MC assertion failed");
+  }
 }
 
 void MC_cut()
@@ -50,7 +55,7 @@ void MC_ignore(void* addr, size_t size)
   simgrid::mc::Client::get()->ignoreMemory(addr, size);
 }
 
-void MC_automaton_new_propositional_symbol(const char* id, int (*fct)())
+void MC_automaton_new_propositional_symbol(const char* /*id*/, int (*/*fct*/)())
 {
   xbt_assert(mc_model_checker == nullptr);
   if (not MC_is_active())
@@ -86,7 +91,7 @@ void MC_register_stack_area(void* stack, smx_actor_t actor, ucontext_t* context,
   simgrid::mc::Client::get()->declareStack(stack, size, actor, context);
 }
 
-void MC_ignore_global_variable(const char *name)
+void MC_ignore_global_variable(const char* /*name*/)
 {
   xbt_assert(mc_model_checker == nullptr);
   if (not MC_is_active())