diff options
author | Matt Turner <mattst88@gmail.com> | 2013-11-04 16:24:35 -0800 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2013-11-06 11:26:18 -0800 |
commit | 3a5223c24cc30b3d8698352782ad9130ee2407ae (patch) | |
tree | 1c756813f49e6556b6006e5df1d575436c7a0265 | |
parent | b35ea0934933885b45348fb861d5ad9b8c284910 (diff) |
mesa: Add unreachable() macro.
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
-rw-r--r-- | src/mesa/main/compiler.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mesa/main/compiler.h b/src/mesa/main/compiler.h index 2820913b6e..dceea02127 100644 --- a/src/mesa/main/compiler.h +++ b/src/mesa/main/compiler.h @@ -248,6 +248,21 @@ static INLINE GLuint CPU_TO_LE32(GLuint x) (void) sizeof(char [1 - 2*!(COND)]); \ } while (0) +/** + * Unreachable macro. Useful for suppressing "control reaches end of non-void + * function" warnings. + */ +#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 5 +#define unreachable() __builtin_unreachable() +#elif (defined(__clang__) && defined(__has_builtin)) +# if __has_builtin(__builtin_unreachable) +# define unreachable() __builtin_unreachable() +# endif +#endif + +#ifndef unreachable +#define unreachable() +#endif #if (__GNUC__ >= 3) #define PRINTFLIKE(f, a) __attribute__ ((format(__printf__, f, a))) |