diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-03-22 07:24:14 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-03-23 07:33:42 +0100 |
commit | e8d9b26f43b87c0a128109e0c0e1ac3d0e3a1278 (patch) | |
tree | 414eb4dbd91f4cf40f7c44c0434e61fa44978db8 /cpukit/score/include/rtems/score/basedefs.h | |
parent | cpukit/rtems/include/rtems/rtems/sem.h: Remove junk in comment (diff) | |
download | rtems-e8d9b26f43b87c0a128109e0c0e1ac3d0e3a1278.tar.bz2 |
score: Add and use RTEMS_UNREACHABLE
Diffstat (limited to 'cpukit/score/include/rtems/score/basedefs.h')
-rw-r--r-- | cpukit/score/include/rtems/score/basedefs.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/cpukit/score/include/rtems/score/basedefs.h b/cpukit/score/include/rtems/score/basedefs.h index facaed9547..24a56f2f51 100644 --- a/cpukit/score/include/rtems/score/basedefs.h +++ b/cpukit/score/include/rtems/score/basedefs.h @@ -191,6 +191,25 @@ /* Provided for backward compatibility */ #define RTEMS_COMPILER_PACKED_ATTRIBUTE RTEMS_PACKED +#if defined(RTEMS_DEBUG) && !defined(RTEMS_SCHEDSIM) + #define _Assert_Unreachable() _Assert( 0 ) +#else + #define _Assert_Unreachable() do { } while ( 0 ) +#endif + +/** + * @brief Tells the compiler that this program point is unreachable. + */ +#if defined(__GNUC__) && !defined(RTEMS_SCHEDSIM) + #define RTEMS_UNREACHABLE() \ + do { \ + __builtin_unreachable(); \ + _Assert_Unreachable(); \ + } while ( 0 ) +#else + #define RTEMS_UNREACHABLE() _Assert_Unreachable() +#endif + #if __cplusplus >= 201103L #define RTEMS_STATIC_ASSERT(cond, msg) \ static_assert(cond, # msg) |