introduce UNREACHABLE() macro.
authorarighi <arighi@38d2e660-2303-0410-9eaa-f027e97ec537>
Mon, 29 Mar 2010 14:11:21 +0000 (14:11 +0000)
committerarighi <arighi@38d2e660-2303-0410-9eaa-f027e97ec537>
Mon, 29 Mar 2010 14:11:21 +0000 (14:11 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@3300 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/cfg/compiler.h

index 5cacf1dca66fe20041b8e2fa0aa5133b66aad3d0..bd60c6e79b74f534688c4816526126f835cb2ef7 100644 (file)
                #define DEPRECATED  __attribute__((__deprecated__))
        #endif
 
+       #if GNUC_PREREQ(4,5)
+               #define UNREACHABLE() __builtin_unreachable()
+       #endif
+
        #ifndef __cplusplus
                #define ASSERT_TYPE_EQUAL(var1, var2) \
                        STATIC_ASSERT(__builtin_types_compatible_p(typeof(var1), typeof(var2)))
 #define MEMORY_BARRIER         /* nothing */
 #warning No memory barrier defined for select compiler. If you use the kernel check it.
 #endif
+#ifndef UNREACHABLE
+#define UNREACHABLE() for (;;)
+#endif
 
 
 /* Misc definitions */