From a4f3131c07c1f601be1e24b2143ca7e2deea09b5 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Wed, 30 Sep 2009 18:05:49 +0000 Subject: increase portability of NORETURN declarations Some compilers (including at least MSVC) support NORETURN on function declarations, but only before the function-name. This patch makes it possible to define NORETURN to something meaningful for those compilers. Signed-off-by: Erik Faye-Lund Signed-off-by: Jeff King --- usage.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'usage.c') diff --git a/usage.c b/usage.c index b6aea4528..0555ce6cc 100644 --- a/usage.c +++ b/usage.c @@ -36,12 +36,12 @@ static void warn_builtin(const char *warn, va_list params) /* If we are in a dlopen()ed .so write to a global variable would segfault * (ugh), so keep things static. */ -static void (*usage_routine)(const char *err) NORETURN = usage_builtin; -static void (*die_routine)(const char *err, va_list params) NORETURN = die_builtin; +static NORETURN void (*usage_routine)(const char *err) = usage_builtin; +static NORETURN void (*die_routine)(const char *err, va_list params) = die_builtin; static void (*error_routine)(const char *err, va_list params) = error_builtin; static void (*warn_routine)(const char *err, va_list params) = warn_builtin; -void set_die_routine(void (*routine)(const char *err, va_list params) NORETURN) +void set_die_routine(NORETURN void (*routine)(const char *err, va_list params)) { die_routine = routine; } -- cgit v1.2.1 From 18660bc96ec0419cc096a53998d3197f2b905e8a Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Wed, 30 Sep 2009 18:05:50 +0000 Subject: add NORETURN_PTR for function pointers Some compilers (including at least MSVC and ARM RVDS) supports NORETURN on function declarations, but not on function pointers. This patch makes it possible to define NORETURN for these compilers, by splitting the NORETURN macro into two - one for function declarations and one for function pointers. Signed-off-by: Erik Faye-Lund Signed-off-by: Jeff King --- usage.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'usage.c') diff --git a/usage.c b/usage.c index 0555ce6cc..c488f3afc 100644 --- a/usage.c +++ b/usage.c @@ -36,12 +36,12 @@ static void warn_builtin(const char *warn, va_list params) /* If we are in a dlopen()ed .so write to a global variable would segfault * (ugh), so keep things static. */ -static NORETURN void (*usage_routine)(const char *err) = usage_builtin; -static NORETURN void (*die_routine)(const char *err, va_list params) = die_builtin; +static NORETURN_PTR void (*usage_routine)(const char *err) = usage_builtin; +static NORETURN_PTR void (*die_routine)(const char *err, va_list params) = die_builtin; static void (*error_routine)(const char *err, va_list params) = error_builtin; static void (*warn_routine)(const char *err, va_list params) = warn_builtin; -void set_die_routine(NORETURN void (*routine)(const char *err, va_list params)) +void set_die_routine(NORETURN_PTR void (*routine)(const char *err, va_list params)) { die_routine = routine; } -- cgit v1.2.1