Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix infinite recursion.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 27 Oct 2022 11:50:11 +0000 (13:50 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 27 Oct 2022 12:23:41 +0000 (14:23 +0200)
src/mc/mc_client_api.cpp

index dd118c1..f6d2746 100644 (file)
@@ -30,8 +30,10 @@ int MC_random(int min, int max)
 
 void MC_assert(int prop)
 {
+  // Cannot used xbt_assert here, or it would be an infinite recursion.
 #if SIMGRID_HAVE_MC
-  xbt_assert(mc_model_checker == nullptr);
+  if (mc_model_checker != nullptr)
+    xbt_die("This should be called from the client side");
   if (not prop) {
     if (MC_is_active())
       simgrid::mc::AppSide::get()->report_assertion_failure();
@@ -39,7 +41,8 @@ void MC_assert(int prop)
       xbt_die("MC assertion failed");
   }
 #else
-  xbt_assert(prop, "Safety property violation detected without the model-checker");
+  if (not prop)
+    xbt_die("Safety property violation detected without the model-checker");
 #endif
 }