@matheusbsbs / matheus-bagliano / commits / a4f3131c07
Fork 0

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 <kusmabite@gmail.com> Signed-off-by: Jeff King <peff@peff.net>

Erik Faye-Lund committed Sep 30, 2009 at 18:05 UTC a4f3131c07c1f601be1e24b2143ca7e2deea09b5
3 files changed +9 -9
git-compat-util.h
+4 -4
@@ -186,13 +186,13 @@ extern char *gitbasename(char *);
186 #include "compat/bswap.h"
187
188 /* General helper functions */
189 -extern void usage(const char *err) NORETURN;
190 -extern void die(const char *err, ...) NORETURN __attribute__((format (printf, 1, 2)));
191 -extern void die_errno(const char *err, ...) NORETURN __attribute__((format (printf, 1, 2)));
189 +extern NORETURN void usage(const char *err);
190 +extern NORETURN void die(const char *err, ...) __attribute__((format (printf, 1, 2)));
191 +extern NORETURN void die_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
192 extern int error(const char *err, ...) __attribute__((format (printf, 1, 2)));
193 extern void warning(const char *err, ...) __attribute__((format (printf, 1, 2)));
194
195 -extern void set_die_routine(void (*routine)(const char *err, va_list params) NORETURN);
195 +extern void set_die_routine(NORETURN void (*routine)(const char *err, va_list params));
196
197 extern int prefixcmp(const char *str, const char *prefix);
198 extern time_t tm_to_time_t(const struct tm *tm);
index-pack.c
+2 -2
@@ -206,8 +206,8 @@ static void parse_pack_header(void)
206 use(sizeof(struct pack_header));
207 }
208
209 -static void bad_object(unsigned long offset, const char *format,
210 - ...) NORETURN __attribute__((format (printf, 2, 3)));
209 +static NORETURN void bad_object(unsigned long offset, const char *format,
210 + ...) __attribute__((format (printf, 2, 3)));
211
212 static void bad_object(unsigned long offset, const char *format, ...)
213 {
usage.c
+3 -3
@@ -36,12 +36,12 @@ static void warn_builtin(const char *warn, va_list params)
36
37 /* If we are in a dlopen()ed .so write to a global variable would segfault
38 * (ugh), so keep things static. */
39 -static void (*usage_routine)(const char *err) NORETURN = usage_builtin;
40 -static void (*die_routine)(const char *err, va_list params) NORETURN = die_builtin;
39 +static NORETURN void (*usage_routine)(const char *err) = usage_builtin;
40 +static NORETURN void (*die_routine)(const char *err, va_list params) = die_builtin;
41 static void (*error_routine)(const char *err, va_list params) = error_builtin;
42 static void (*warn_routine)(const char *err, va_list params) = warn_builtin;
43
44 -void set_die_routine(void (*routine)(const char *err, va_list params) NORETURN)
44 +void set_die_routine(NORETURN void (*routine)(const char *err, va_list params))
45 {
46 die_routine = routine;
47 }