Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Introduce XBT_ATTRIB_DEPRECATED_v330.
[simgrid.git] / include / xbt / base.h
index 5dbeb50..8d6b05d 100644 (file)
@@ -1,6 +1,6 @@
 /* xbt.h - Public interface to the xbt (simgrid's toolbox)                  */
 
-/* Copyright (c) 2004-2019. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2004-2020. 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. */
 #  define _GNU_SOURCE
 #endif
 
-// Teach the compiler that some code path is unreachable:
-#if defined(__has_builtin)
-#  if __has_builtin(__builtin_unreachable)
-#    define XBT_UNREACHABLE() __builtin_unreachable()
-#  else
-#    include <stdlib.h>
-#    define XBT_UNREACHABLE() abort()
-#  endif
-#elif (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
-#  define XBT_UNREACHABLE() __builtin_unreachable()
-#else
-#  include <stdlib.h>
-#  define XBT_UNREACHABLE() abort()
-#endif
-
 /* On MinGW, stdio.h defines __MINGW_PRINTF_FORMAT and __MINGW_SCANF_FORMAT
    which are the suitable format style (either gnu_printf or ms_printf)
    depending on which version is available (__USE_MINGW_ANSI_STDIO): */
@@ -72,6 +57,8 @@
   XBT_ATTRIB_DEPRECATED(mesg " (this compatibility wrapper will be dropped in v3.28)")
 #define XBT_ATTRIB_DEPRECATED_v329(mesg)                                                                               \
   XBT_ATTRIB_DEPRECATED(mesg " (this compatibility wrapper will be dropped in v3.29)")
+#define XBT_ATTRIB_DEPRECATED_v330(mesg)                                                                               \
+  XBT_ATTRIB_DEPRECATED(mesg " (this compatibility wrapper will be dropped in v3.30)")
 
 #if !defined(__APPLE__)
 #  define XBT_ATTRIB_CONSTRUCTOR(prio) __attribute__((__constructor__(prio)))
@@ -95,7 +82,7 @@
 /* Concatenate arguments. _XBT_CONCAT2 adds a level of indirection over _XBT_CONCAT. */
 #define _XBT_CONCAT(a, b) a##b
 #define _XBT_CONCAT2(a, b) _XBT_CONCAT(a, b)
-#define _XBT_CONCAT3(a, b, c) _XBT_CONCAT2(_XBT_CONCAT(a, b), c)
+#define _XBT_CONCAT3(a, b, c) _XBT_CONCAT2(_XBT_CONCAT2(a, b), c)
 #define _XBT_CONCAT4(a, b, c, d) _XBT_CONCAT2(_XBT_CONCAT3(a, b, c), d)
 
 /*