1 #pragma once 2 3 #if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE) 4 #define _GNU_SOURCE 1 5 #endif 6 7 #if !defined(_BSD_SOURCE) 8 #define _BSD_SOURCE 1 9 #endif 10 11 #if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) && \ 12 !defined(_GNU_SOURCE) && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__) 13 #define _BSD_SOURCE 1 14 #define _XOPEN_SOURCE 700 15 #endif 16 17 #if __STDC_VERSION__ >= 199901L 18 #define __restrict restrict 19 #elif !defined(__GNUC__) 20 #define __restrict 21 #endif 22 23 #if __STDC_VERSION__ >= 199901L || defined(__cplusplus) 24 #define __inline inline 25 #endif 26 27 #if __STDC_VERSION__ >= 201112L 28 #elif defined(__GNUC__) 29 #define _Noreturn __attribute__((__noreturn__)) 30 #else 31 #define _Noreturn 32 #endif 33