--- src/util/macros.h | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/src/util/macros.h b/src/util/macros.h index 40ebf02..77055e8 100644 --- a/src/util/macros.h +++ b/src/util/macros.h @@ -75,6 +75,19 @@ do { \ #define unreachable(str) #endif +/** + * Assume macro. Useful for expressing our assumptions to the compiler, + * typically for purposes of silencing warnings. + */ +#ifdef HAVE___BUILTIN_UNREACHABLE +#define assume(expr) ((expr) ? (void)0 : assert(!"assumption failed"), \ + __builtin_unreachable()) +#elif _MSC_VER >= 1200 +#define assume(expr) __assume(expr) +#else +#define assume(expr) assert(expr) +#endif + #ifdef HAVE_FUNC_ATTRIBUTE_FLATTEN #define FLATTEN __attribute__((__flatten__)) #else -- 1.8.5.5 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev