Module: Mesa Branch: master Commit: 99cebffda9cd2d42edd6c1cbeceb994e6b320c5a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=99cebffda9cd2d42edd6c1cbeceb994e6b320c5a
Author: Matt Turner <[email protected]> Date: Fri Nov 21 13:50:14 2014 -0800 util: Implement assume() for clang. Reviewed-by: Jordan Justen <[email protected]> --- src/util/macros.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/util/macros.h b/src/util/macros.h index da5daff..5fc6729 100644 --- a/src/util/macros.h +++ b/src/util/macros.h @@ -29,6 +29,10 @@ # define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x))) #endif +/* For compatibility with Clang's __has_builtin() */ +#ifndef __has_builtin +# define __has_builtin(x) 0 +#endif /** * __builtin_expect macros @@ -85,7 +89,13 @@ do { \ * Assume macro. Useful for expressing our assumptions to the compiler, * typically for purposes of silencing warnings. */ -#ifdef HAVE___BUILTIN_UNREACHABLE +#if __has_builtin(__builtin_assume) +#define assume(expr) \ +do { \ + assert(expr); \ + __builtin_assume(expr); \ +} while (0) +#elif defined HAVE___BUILTIN_UNREACHABLE #define assume(expr) ((expr) ? ((void) 0) \ : (assert(!"assumption failed"), \ __builtin_unreachable())) _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
