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