Module: Mesa Branch: master Commit: 85377dc55c55d1c5536cdf9a86ce67ebb59b7e77 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=85377dc55c55d1c5536cdf9a86ce67ebb59b7e77
Author: Roland Scheidegger <[email protected]> Date: Thu Jan 11 01:49:00 2018 +0100 util: fix NORETURN for msvc, add HAVE_FUNC_ATTRIBUTE_NORETURN to c99_compat.h We've seen some problems internally due to macro redefinition. Fix this by adding HAVE_FUNC_ATTRIBUTE_NORETURN to c99_compat.h, and defining it for msvc. And avoid redefinition just in case. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> --- include/c99_compat.h | 1 + src/util/macros.h | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/include/c99_compat.h b/include/c99_compat.h index cb690c6e2a..81621a7fab 100644 --- a/include/c99_compat.h +++ b/include/c99_compat.h @@ -164,6 +164,7 @@ test_c99_compat_h(const void * restrict a, # define HAVE_FUNC_ATTRIBUTE_FORMAT 1 # define HAVE_FUNC_ATTRIBUTE_PACKED 1 # define HAVE_FUNC_ATTRIBUTE_ALIAS 1 +# define HAVE_FUNC_ATTRIBUTE_NORETURN 1 # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) /* https://gcc.gnu.org/onlinedocs/gcc-4.3.6/gcc/Other-Builtins.html */ diff --git a/src/util/macros.h b/src/util/macros.h index d6e37053b1..432d513930 100644 --- a/src/util/macros.h +++ b/src/util/macros.h @@ -171,10 +171,14 @@ do { \ #define ATTRIBUTE_RETURNS_NONNULL #endif -#ifdef HAVE_FUNC_ATTRIBUTE_NORETURN -#define NORETURN __attribute__((__noreturn__)) -#else -#define NORETURN +#ifndef NORETURN +# ifdef _MSC_VER +# define NORETURN __declspec(noreturn) +# elif defined HAVE_FUNC_ATTRIBUTE_NORETURN +# define NORETURN __attribute__((__noreturn__)) +# else +# define NORETURN +# endif #endif #ifdef __cplusplus _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
