1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | #if !defined(__STDDEF_H) || defined(__need_ptrdiff_t) || \ |
27 | defined(__need_size_t) || defined(__need_wchar_t) || \ |
28 | defined(__need_NULL) || defined(__need_wint_t) |
29 | |
30 | #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ |
31 | !defined(__need_wchar_t) && !defined(__need_NULL) && \ |
32 | !defined(__need_wint_t) |
33 | |
34 | #if !__has_feature(modules) |
35 | #define __STDDEF_H |
36 | #endif |
37 | #define __need_ptrdiff_t |
38 | #define __need_size_t |
39 | #define __need_wchar_t |
40 | #define __need_NULL |
41 | #define __need_STDDEF_H_misc |
42 | |
43 | #endif |
44 | |
45 | #if defined(__need_ptrdiff_t) |
46 | #if !defined(_PTRDIFF_T) || __has_feature(modules) |
47 | |
48 | #if !__has_feature(modules) |
49 | #define _PTRDIFF_T |
50 | #endif |
51 | typedef __PTRDIFF_TYPE__ ptrdiff_t; |
52 | #endif |
53 | #undef __need_ptrdiff_t |
54 | #endif |
55 | |
56 | #if defined(__need_size_t) |
57 | #if !defined(_SIZE_T) || __has_feature(modules) |
58 | |
59 | #if !__has_feature(modules) |
60 | #define _SIZE_T |
61 | #endif |
62 | typedef __SIZE_TYPE__ size_t; |
63 | #endif |
64 | #undef __need_size_t |
65 | #endif |
66 | |
67 | #if defined(__need_STDDEF_H_misc) |
68 | |
69 | |
70 | #if (defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 && \ |
71 | !defined(_RSIZE_T)) || __has_feature(modules) |
72 | |
73 | #if !__has_feature(modules) |
74 | #define _RSIZE_T |
75 | #endif |
76 | typedef __SIZE_TYPE__ rsize_t; |
77 | #endif |
78 | #endif |
79 | |
80 | #if defined(__need_wchar_t) |
81 | #ifndef __cplusplus |
82 | |
83 | #if !defined(_WCHAR_T) || __has_feature(modules) |
84 | #if !__has_feature(modules) |
85 | #define _WCHAR_T |
86 | #if defined(_MSC_EXTENSIONS) |
87 | #define _WCHAR_T_DEFINED |
88 | #endif |
89 | #endif |
90 | typedef __WCHAR_TYPE__ wchar_t; |
91 | #endif |
92 | #endif |
93 | #undef __need_wchar_t |
94 | #endif |
95 | |
96 | #if defined(__need_NULL) |
97 | #undef NULL |
98 | #ifdef __cplusplus |
99 | # if !defined(__MINGW32__) && !defined(_MSC_VER) |
100 | # define NULL __null |
101 | # else |
102 | # define NULL 0 |
103 | # endif |
104 | #else |
105 | # define NULL ((void*)0) |
106 | #endif |
107 | #ifdef __cplusplus |
108 | #if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED) |
109 | namespace std { typedef decltype(nullptr) nullptr_t; } |
110 | using ::std::nullptr_t; |
111 | #endif |
112 | #endif |
113 | #undef __need_NULL |
114 | #endif |
115 | |
116 | #if defined(__need_STDDEF_H_misc) |
117 | #if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L |
118 | #include "__stddef_max_align_t.h" |
119 | #endif |
120 | #define offsetof(t, d) __builtin_offsetof(t, d) |
121 | #undef __need_STDDEF_H_misc |
122 | #endif |
123 | |
124 | |
125 | |
126 | #if defined(__need_wint_t) |
127 | |
128 | #if !defined(_WINT_T) || __has_feature(modules) |
129 | #if !__has_feature(modules) |
130 | #define _WINT_T |
131 | #endif |
132 | typedef __WINT_TYPE__ wint_t; |
133 | #endif |
134 | #undef __need_wint_t |
135 | #endif |
136 | |
137 | #endif |
138 | |