features.h 609 B

12345678910111213141516171819202122232425262728
  1. #ifndef _FEATURES_H
  2. #define _FEATURES_H
  3. #if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) \
  4. && !defined(_XOPEN_SOURCE) && !defined(_GNU_SOURCE) \
  5. && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__)
  6. #define _BSD_SOURCE 1
  7. #define _XOPEN_SOURCE 700
  8. #endif
  9. #if __STDC_VERSION__ >= 199901L
  10. #define __restrict restrict
  11. #elif !defined(__GNUC__)
  12. #define __restrict
  13. #endif
  14. #if __STDC_VERSION__ >= 199901L || defined(__cplusplus)
  15. #define __inline inline
  16. #endif
  17. #if __STDC_VERSION__ >= 201112L
  18. #elif defined(__GNUC__)
  19. #define _Noreturn __attribute__((__noreturn__))
  20. #else
  21. #define _Noreturn
  22. #endif
  23. #endif