stdc-predef.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /* Copyright (C) 1991-2023 Free Software Foundation, Inc.
  2. This file is part of the GNU C Library.
  3. The GNU C Library is free software; you can redistribute it and/or
  4. modify it under the terms of the GNU Lesser General Public
  5. License as published by the Free Software Foundation; either
  6. version 2.1 of the License, or (at your option) any later version.
  7. The GNU C Library is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  10. Lesser General Public License for more details.
  11. You should have received a copy of the GNU Lesser General Public
  12. License along with the GNU C Library; if not, see
  13. <https://www.gnu.org/licenses/>. */
  14. #ifndef _STDC_PREDEF_H
  15. #define _STDC_PREDEF_H 1
  16. /* This header is separate from features.h so that the compiler can
  17. include it implicitly at the start of every compilation. It must
  18. not itself include <features.h> or any other header that includes
  19. <features.h> because the implicit include comes before any feature
  20. test macros that may be defined in a source file before it first
  21. explicitly includes a system header. GCC knows the name of this
  22. header in order to preinclude it. */
  23. /* glibc's intent is to support the IEC 559 math functionality, real
  24. and complex. If the GCC (4.9 and later) predefined macros
  25. specifying compiler intent are available, use them to determine
  26. whether the overall intent is to support these features; otherwise,
  27. presume an older compiler has intent to support these features and
  28. define these macros by default. */
  29. #ifdef __GCC_IEC_559
  30. # if __GCC_IEC_559 > 0
  31. # define __STDC_IEC_559__ 1
  32. # define __STDC_IEC_60559_BFP__ 201404L
  33. # endif
  34. #else
  35. # define __STDC_IEC_559__ 1
  36. # define __STDC_IEC_60559_BFP__ 201404L
  37. #endif
  38. #ifdef __GCC_IEC_559_COMPLEX
  39. # if __GCC_IEC_559_COMPLEX > 0
  40. # define __STDC_IEC_559_COMPLEX__ 1
  41. # define __STDC_IEC_60559_COMPLEX__ 201404L
  42. # endif
  43. #else
  44. # define __STDC_IEC_559_COMPLEX__ 1
  45. # define __STDC_IEC_60559_COMPLEX__ 201404L
  46. #endif
  47. /* wchar_t uses Unicode 10.0.0. Version 10.0 of the Unicode Standard is
  48. synchronized with ISO/IEC 10646:2017, fifth edition, plus
  49. the following additions from Amendment 1 to the fifth edition:
  50. - 56 emoji characters
  51. - 285 hentaigana
  52. - 3 additional Zanabazar Square characters */
  53. #define __STDC_ISO_10646__ 201706L
  54. #endif