Introduce X_NORETURN macro defined as __attribute__((noreturn)) for gcc

Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Mikhail Gusarov 2010-05-13 01:59:06 +07:00
parent 5a8e2f2745
commit 868e372a73
3 changed files with 9 additions and 7 deletions

View File

@ -106,6 +106,12 @@ typedef unsigned long ATOM;
#define X_DEPRECATED #define X_DEPRECATED
#endif #endif
#if defined(__GNUC__) && (__GNUC__ > 2)
#define X_NORETURN __attribute__((noreturn))
#else
#define X_NORETURN
#endif
#ifndef _XTYPEDEF_CALLBACKLISTPTR #ifndef _XTYPEDEF_CALLBACKLISTPTR
typedef struct _CallbackList *CallbackListPtr; /* also in dix.h */ typedef struct _CallbackList *CallbackListPtr; /* also in dix.h */
#define _XTYPEDEF_CALLBACKLISTPTR #define _XTYPEDEF_CALLBACKLISTPTR

View File

@ -547,10 +547,7 @@ extern _X_EXPORT void FreeAuditTimer(void);
extern _X_EXPORT void AuditF(const char *f, ...) _printf_attribute(1,2); extern _X_EXPORT void AuditF(const char *f, ...) _printf_attribute(1,2);
extern _X_EXPORT void VAuditF(const char *f, va_list args); extern _X_EXPORT void VAuditF(const char *f, va_list args);
extern _X_EXPORT void FatalError(const char *f, ...) _printf_attribute(1,2) extern _X_EXPORT void FatalError(const char *f, ...) _printf_attribute(1,2)
#if defined(__GNUC__) && (__GNUC__ > 2) X_NORETURN;
__attribute((noreturn))
#endif
;
#ifdef DEBUG #ifdef DEBUG
#define DebugF ErrorF #define DebugF ErrorF

View File

@ -402,9 +402,8 @@ LogMessage(MessageType type, const char *format, ...)
va_end(ap); va_end(ap);
} }
#ifdef __GNUC__ void
void AbortServer(void) __attribute__((noreturn)); AbortServer(void) X_NORETURN;
#endif
void void
AbortServer(void) AbortServer(void)