| #ifndef _FEATURES_H |
| #define _FEATURES_H |
| |
| #if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE) |
| #define _GNU_SOURCE 1 |
| #endif |
| |
| #if defined(_DEFAULT_SOURCE) && !defined(_BSD_SOURCE) |
| #define _BSD_SOURCE 1 |
| #endif |
| |
| #if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) \ |
| && !defined(_XOPEN_SOURCE) && !defined(_GNU_SOURCE) \ |
| && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__) |
| #define _BSD_SOURCE 1 |
| #define _XOPEN_SOURCE 700 |
| #endif |
| |
| #if __STDC_VERSION__ >= 199901L |
| #define __restrict restrict |
| #elif !defined(__GNUC__) |
| #define __restrict |
| #endif |
| |
| #if __STDC_VERSION__ >= 199901L || defined(__cplusplus) |
| #define __inline inline |
| #elif !defined(__GNUC__) |
| #define __inline |
| #endif |
| |
| #if __STDC_VERSION__ >= 201112L |
| #elif defined(__GNUC__) |
| #define _Noreturn __attribute__((__noreturn__)) |
| #else |
| #define _Noreturn |
| #endif |
| |
| #define __REDIR(x,y) __typeof__(x) x __asm__(#y) |
| |
| #endif |