#ifndef _XBT_SYSDEP_H
#define _XBT_SYSDEP_H
-#include <string.h>
-#include <stdlib.h>
-#include <stdarg.h> /* va_list */
-
#include "xbt/log.h"
#include "xbt/misc.h"
#include "xbt/asserts.h"
#include "simgrid_config.h"
+#include <string.h>
+#include <stdlib.h>
+#include <stdarg.h> /* va_list */
+
SG_BEGIN_DECL()
/* They live in asserts.h, but need to be declared before this module.
* @{
*/
/** @brief Kill the program in silence */
+#ifdef COVERAGE
+/* Call __gcov_flush on abort when compiling with coverage options. */
+#define xbt_abort() \
+ do { \
+ extern void __gcov_flush(void); \
+ __gcov_flush(); \
+ abort(); \
+ } while (0)
+#else
#define xbt_abort() abort()
+#endif
/**
* @brief Kill the program with an error message
res = xbt_malloc(s);
}
} else {
- if (p) {
- free(p);
- }
+ free(p);
}
return res;
}
/** @brief like free
@hideinitializer */
#define xbt_free free /*nothing specific to do here. A poor valgrind replacement? */
-/*#define xbt_free_fct free * replacement with the guareenty of being a function FIXME:KILLME*/
/** @brief like free, but you can be sure that it is a function */
XBT_PUBLIC(void) xbt_free_f(void *p);