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
#endif
#if defined(__GNUC__) && (__GNUC__ > 2)
#define X_NORETURN __attribute__((noreturn))
#else
#define X_NORETURN
#endif
#ifndef _XTYPEDEF_CALLBACKLISTPTR
typedef struct _CallbackList *CallbackListPtr; /* also in dix.h */
#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 VAuditF(const char *f, va_list args);
extern _X_EXPORT void FatalError(const char *f, ...) _printf_attribute(1,2)
#if defined(__GNUC__) && (__GNUC__ > 2)
__attribute((noreturn))
#endif
;
X_NORETURN;
#ifdef DEBUG
#define DebugF ErrorF

View File

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