From 6117d8aff435be343e2eff28d9938394e8d6d37c Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 17 Feb 2019 07:09:48 -0700 Subject: [PATCH] Revert "Make noreturn attribute valid only for GNUC implementations" This reverts commit d033dd1ed2e1d93833287ad3d637719b24897acd. --- racket/src/racket/include/scheme.h | 9 --------- racket/src/racket/src/schemef.h | 2 +- racket/src/racket/src/schemex.h | 2 +- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/racket/src/racket/include/scheme.h b/racket/src/racket/include/scheme.h index 9cebae3bc9..90026477d1 100644 --- a/racket/src/racket/include/scheme.h +++ b/racket/src/racket/include/scheme.h @@ -252,15 +252,6 @@ extern "C" { #endif -/* The reason we need two preprocessor variables is that, in gcc/clang the - function attribute comes after the function declaration. However, - in MSVC the function attribute comes before the function declaration. */ -#ifdef __GNUC__ -#define NORETURN __attribute__((__noreturn__)) -#else -#define NORETURN -#endif - /* Allowed by all configurations, currently: */ #define MZ_CAN_ACCESS_THREAD_LOCAL_DIRECTLY diff --git a/racket/src/racket/src/schemef.h b/racket/src/racket/src/schemef.h index 7b827a2bdf..28d81790f3 100644 --- a/racket/src/racket/src/schemef.h +++ b/racket/src/racket/src/schemef.h @@ -198,7 +198,7 @@ MZ_EXTERN Scheme_On_Atomic_Timeout_Proc scheme_set_on_atomic_timeout(Scheme_On_A /*========================================================================*/ MZ_EXTERN void scheme_signal_error(const char *msg, ...); -MZ_EXTERN void scheme_raise_exn(int exnid, ...) NORETURN; +MZ_EXTERN void scheme_raise_exn(int exnid, ...) __attribute__ ((noreturn)); MZ_EXTERN void scheme_warning(char *msg, ...); MZ_EXTERN void scheme_raise(Scheme_Object *exn); diff --git a/racket/src/racket/src/schemex.h b/racket/src/racket/src/schemex.h index e573bd99d8..bd5a7a408c 100644 --- a/racket/src/racket/src/schemex.h +++ b/racket/src/racket/src/schemex.h @@ -139,7 +139,7 @@ Scheme_On_Atomic_Timeout_Proc (*scheme_set_on_atomic_timeout)(Scheme_On_Atomic_T /* error handling */ /*========================================================================*/ void (*scheme_signal_error)(const char *msg, ...); -void (*scheme_raise_exn)(int exnid, ...) NORETURN; +void (*scheme_raise_exn)(int exnid, ...) __attribute__ ((noreturn)); void (*scheme_warning)(char *msg, ...); void (*scheme_raise)(Scheme_Object *exn); int (*scheme_log_level_p)(Scheme_Logger *logger, int level);