Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
in MC mode, failed xbt_assert() are reported as MC_assert()s
[simgrid.git] / include / xbt / asserts.h
index 2799724..314c5ec 100644 (file)
@@ -1,6 +1,6 @@
 /*  xbt/asserts.h -- assertion mechanism                                    */
 
-/* Copyright (c) 2005-2021. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2005-2022. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -8,6 +8,7 @@
 #ifndef XBT_ASSERTS_H
 #define XBT_ASSERTS_H
 
+#include "simgrid/modelchecker.h"
 #include <stdlib.h>
 #include <xbt/base.h>
 #include <xbt/log.h>
@@ -60,7 +61,10 @@ XBT_ATTRIB_NORETURN XBT_PUBLIC void xbt_abort(void);
       XBT_CCRITICAL(root, __VA_ARGS__);                                                                                \
       if (!xbt_log_no_loc)                                                                                             \
         xbt_backtrace_display_current();                                                                               \
-      abort();                                                                                                         \
+      if (MC_is_active())                                                                                              \
+        MC_assert(0);                                                                                                  \
+      else                                                                                                             \
+        abort();                                                                                                       \
     }                                                                                                                  \
   } while (0)