• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _FEATURES_H
2 #define _FEATURES_H
3 
4 #if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE)
5 #define _GNU_SOURCE 1
6 #endif
7 
8 #if defined(_DEFAULT_SOURCE) && !defined(_BSD_SOURCE)
9 #define _BSD_SOURCE 1
10 #endif
11 
12 #if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) \
13  && !defined(_XOPEN_SOURCE) && !defined(_GNU_SOURCE) \
14  && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__)
15 #define _BSD_SOURCE 1
16 #define _XOPEN_SOURCE 700
17 #endif
18 
19 #if __STDC_VERSION__ >= 199901L && !defined(__cplusplus)
20 #define __restrict restrict
21 #elif !defined(__GNUC__)
22 #define __restrict
23 #endif
24 
25 #if __STDC_VERSION__ >= 199901L || defined(__cplusplus)
26 #define __inline inline
27 #elif !defined(__GNUC__)
28 #define __inline
29 #endif
30 
31 #if defined(__cplusplus)
32 #if __cplusplus >= 201103L
33 #define _Noreturn [[ noreturn ]]
34 #else
35 #define _Noreturn
36 #endif
37 #elif __STDC_VERSION__ >= 201112L
38 #elif defined(__GNUC__)
39 #define _Noreturn __attribute__((__noreturn__))
40 #else
41 #define _Noreturn
42 #endif
43 
44 #define __REDIR(x,y) __typeof__(x) x __asm__(#y)
45 
46 #endif
47