add _Noreturn function attribute, with fallback for pre-C11 GNUC

This commit is contained in:
Rich Felker 2012-09-06 23:12:27 -04:00
commit c8ea985748
6 changed files with 23 additions and 9 deletions

View file

@ -5,6 +5,13 @@
extern "C" {
#endif
#if __STDC_VERSION__ >= 201112L
#elif defined(__GNUC__)
#define _Noreturn __attribute__((__noreturn__))
#else
#define _Noreturn
#endif
#include <bits/setjmp.h>
@ -29,7 +36,7 @@ void _longjmp (jmp_buf, int);
int setjmp (jmp_buf);
void longjmp (jmp_buf, int);
_Noreturn void longjmp (jmp_buf, int);
#define setjmp setjmp
#define longjmp longjmp

View file

@ -11,6 +11,13 @@ extern "C" {
#define __restrict
#endif
#if __STDC_VERSION__ >= 201112L
#elif defined(__GNUC__)
#define _Noreturn __attribute__((__noreturn__))
#else
#define _Noreturn
#endif
#undef NULL
#ifdef __cplusplus
#define NULL 0
@ -46,12 +53,12 @@ void *realloc (void *, size_t);
void free (void *);
void *aligned_alloc(size_t alignment, size_t size);
void abort (void);
_Noreturn void abort (void);
int atexit (void (*) (void));
void exit (int);
void _Exit (int);
_Noreturn void exit (int);
_Noreturn void _Exit (int);
int at_quick_exit (void (*) (void));
void quick_exit (int);
_Noreturn void quick_exit (int);
char *getenv (const char *);