source: Daodan/MSYS2/mingw32/lib/gcc/i686-w64-mingw32/11.2.0/include/stdint-gcc.h@ 1194

Last change on this file since 1194 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 9.3 KB
Line 
1/* Copyright (C) 2008-2021 Free Software Foundation, Inc.
2
3This file is part of GCC.
4
5GCC is free software; you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation; either version 3, or (at your option)
8any later version.
9
10GCC is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15Under Section 7 of GPL version 3, you are granted additional
16permissions described in the GCC Runtime Library Exception, version
173.1, as published by the Free Software Foundation.
18
19You should have received a copy of the GNU General Public License and
20a copy of the GCC Runtime Library Exception along with this program;
21see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22<http://www.gnu.org/licenses/>. */
23
24/*
25 * ISO C Standard: 7.18 Integer types <stdint.h>
26 */
27
28#ifndef _GCC_STDINT_H
29#define _GCC_STDINT_H
30
31/* 7.8.1.1 Exact-width integer types */
32
33#ifdef __INT8_TYPE__
34typedef __INT8_TYPE__ int8_t;
35#endif
36#ifdef __INT16_TYPE__
37typedef __INT16_TYPE__ int16_t;
38#endif
39#ifdef __INT32_TYPE__
40typedef __INT32_TYPE__ int32_t;
41#endif
42#ifdef __INT64_TYPE__
43typedef __INT64_TYPE__ int64_t;
44#endif
45#ifdef __UINT8_TYPE__
46typedef __UINT8_TYPE__ uint8_t;
47#endif
48#ifdef __UINT16_TYPE__
49typedef __UINT16_TYPE__ uint16_t;
50#endif
51#ifdef __UINT32_TYPE__
52typedef __UINT32_TYPE__ uint32_t;
53#endif
54#ifdef __UINT64_TYPE__
55typedef __UINT64_TYPE__ uint64_t;
56#endif
57
58/* 7.8.1.2 Minimum-width integer types */
59
60typedef __INT_LEAST8_TYPE__ int_least8_t;
61typedef __INT_LEAST16_TYPE__ int_least16_t;
62typedef __INT_LEAST32_TYPE__ int_least32_t;
63typedef __INT_LEAST64_TYPE__ int_least64_t;
64typedef __UINT_LEAST8_TYPE__ uint_least8_t;
65typedef __UINT_LEAST16_TYPE__ uint_least16_t;
66typedef __UINT_LEAST32_TYPE__ uint_least32_t;
67typedef __UINT_LEAST64_TYPE__ uint_least64_t;
68
69/* 7.8.1.3 Fastest minimum-width integer types */
70
71typedef __INT_FAST8_TYPE__ int_fast8_t;
72typedef __INT_FAST16_TYPE__ int_fast16_t;
73typedef __INT_FAST32_TYPE__ int_fast32_t;
74typedef __INT_FAST64_TYPE__ int_fast64_t;
75typedef __UINT_FAST8_TYPE__ uint_fast8_t;
76typedef __UINT_FAST16_TYPE__ uint_fast16_t;
77typedef __UINT_FAST32_TYPE__ uint_fast32_t;
78typedef __UINT_FAST64_TYPE__ uint_fast64_t;
79
80/* 7.8.1.4 Integer types capable of holding object pointers */
81
82#ifdef __INTPTR_TYPE__
83typedef __INTPTR_TYPE__ intptr_t;
84#endif
85#ifdef __UINTPTR_TYPE__
86typedef __UINTPTR_TYPE__ uintptr_t;
87#endif
88
89/* 7.8.1.5 Greatest-width integer types */
90
91typedef __INTMAX_TYPE__ intmax_t;
92typedef __UINTMAX_TYPE__ uintmax_t;
93
94#if (!defined __cplusplus || __cplusplus >= 201103L \
95 || defined __STDC_LIMIT_MACROS)
96
97/* 7.18.2 Limits of specified-width integer types */
98
99#ifdef __INT8_MAX__
100# undef INT8_MAX
101# define INT8_MAX __INT8_MAX__
102# undef INT8_MIN
103# define INT8_MIN (-INT8_MAX - 1)
104#endif
105#ifdef __UINT8_MAX__
106# undef UINT8_MAX
107# define UINT8_MAX __UINT8_MAX__
108#endif
109#ifdef __INT16_MAX__
110# undef INT16_MAX
111# define INT16_MAX __INT16_MAX__
112# undef INT16_MIN
113# define INT16_MIN (-INT16_MAX - 1)
114#endif
115#ifdef __UINT16_MAX__
116# undef UINT16_MAX
117# define UINT16_MAX __UINT16_MAX__
118#endif
119#ifdef __INT32_MAX__
120# undef INT32_MAX
121# define INT32_MAX __INT32_MAX__
122# undef INT32_MIN
123# define INT32_MIN (-INT32_MAX - 1)
124#endif
125#ifdef __UINT32_MAX__
126# undef UINT32_MAX
127# define UINT32_MAX __UINT32_MAX__
128#endif
129#ifdef __INT64_MAX__
130# undef INT64_MAX
131# define INT64_MAX __INT64_MAX__
132# undef INT64_MIN
133# define INT64_MIN (-INT64_MAX - 1)
134#endif
135#ifdef __UINT64_MAX__
136# undef UINT64_MAX
137# define UINT64_MAX __UINT64_MAX__
138#endif
139
140#undef INT_LEAST8_MAX
141#define INT_LEAST8_MAX __INT_LEAST8_MAX__
142#undef INT_LEAST8_MIN
143#define INT_LEAST8_MIN (-INT_LEAST8_MAX - 1)
144#undef UINT_LEAST8_MAX
145#define UINT_LEAST8_MAX __UINT_LEAST8_MAX__
146#undef INT_LEAST16_MAX
147#define INT_LEAST16_MAX __INT_LEAST16_MAX__
148#undef INT_LEAST16_MIN
149#define INT_LEAST16_MIN (-INT_LEAST16_MAX - 1)
150#undef UINT_LEAST16_MAX
151#define UINT_LEAST16_MAX __UINT_LEAST16_MAX__
152#undef INT_LEAST32_MAX
153#define INT_LEAST32_MAX __INT_LEAST32_MAX__
154#undef INT_LEAST32_MIN
155#define INT_LEAST32_MIN (-INT_LEAST32_MAX - 1)
156#undef UINT_LEAST32_MAX
157#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__
158#undef INT_LEAST64_MAX
159#define INT_LEAST64_MAX __INT_LEAST64_MAX__
160#undef INT_LEAST64_MIN
161#define INT_LEAST64_MIN (-INT_LEAST64_MAX - 1)
162#undef UINT_LEAST64_MAX
163#define UINT_LEAST64_MAX __UINT_LEAST64_MAX__
164
165#undef INT_FAST8_MAX
166#define INT_FAST8_MAX __INT_FAST8_MAX__
167#undef INT_FAST8_MIN
168#define INT_FAST8_MIN (-INT_FAST8_MAX - 1)
169#undef UINT_FAST8_MAX
170#define UINT_FAST8_MAX __UINT_FAST8_MAX__
171#undef INT_FAST16_MAX
172#define INT_FAST16_MAX __INT_FAST16_MAX__
173#undef INT_FAST16_MIN
174#define INT_FAST16_MIN (-INT_FAST16_MAX - 1)
175#undef UINT_FAST16_MAX
176#define UINT_FAST16_MAX __UINT_FAST16_MAX__
177#undef INT_FAST32_MAX
178#define INT_FAST32_MAX __INT_FAST32_MAX__
179#undef INT_FAST32_MIN
180#define INT_FAST32_MIN (-INT_FAST32_MAX - 1)
181#undef UINT_FAST32_MAX
182#define UINT_FAST32_MAX __UINT_FAST32_MAX__
183#undef INT_FAST64_MAX
184#define INT_FAST64_MAX __INT_FAST64_MAX__
185#undef INT_FAST64_MIN
186#define INT_FAST64_MIN (-INT_FAST64_MAX - 1)
187#undef UINT_FAST64_MAX
188#define UINT_FAST64_MAX __UINT_FAST64_MAX__
189
190#ifdef __INTPTR_MAX__
191# undef INTPTR_MAX
192# define INTPTR_MAX __INTPTR_MAX__
193# undef INTPTR_MIN
194# define INTPTR_MIN (-INTPTR_MAX - 1)
195#endif
196#ifdef __UINTPTR_MAX__
197# undef UINTPTR_MAX
198# define UINTPTR_MAX __UINTPTR_MAX__
199#endif
200
201#undef INTMAX_MAX
202#define INTMAX_MAX __INTMAX_MAX__
203#undef INTMAX_MIN
204#define INTMAX_MIN (-INTMAX_MAX - 1)
205#undef UINTMAX_MAX
206#define UINTMAX_MAX __UINTMAX_MAX__
207
208/* 7.18.3 Limits of other integer types */
209
210#undef PTRDIFF_MAX
211#define PTRDIFF_MAX __PTRDIFF_MAX__
212#undef PTRDIFF_MIN
213#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)
214
215#undef SIG_ATOMIC_MAX
216#define SIG_ATOMIC_MAX __SIG_ATOMIC_MAX__
217#undef SIG_ATOMIC_MIN
218#define SIG_ATOMIC_MIN __SIG_ATOMIC_MIN__
219
220#undef SIZE_MAX
221#define SIZE_MAX __SIZE_MAX__
222
223#undef WCHAR_MAX
224#define WCHAR_MAX __WCHAR_MAX__
225#undef WCHAR_MIN
226#define WCHAR_MIN __WCHAR_MIN__
227
228#undef WINT_MAX
229#define WINT_MAX __WINT_MAX__
230#undef WINT_MIN
231#define WINT_MIN __WINT_MIN__
232
233#endif /* (!defined __cplusplus || __cplusplus >= 201103L
234 || defined __STDC_LIMIT_MACROS) */
235
236#if (!defined __cplusplus || __cplusplus >= 201103L \
237 || defined __STDC_CONSTANT_MACROS)
238
239#undef INT8_C
240#define INT8_C(c) __INT8_C(c)
241#undef INT16_C
242#define INT16_C(c) __INT16_C(c)
243#undef INT32_C
244#define INT32_C(c) __INT32_C(c)
245#undef INT64_C
246#define INT64_C(c) __INT64_C(c)
247#undef UINT8_C
248#define UINT8_C(c) __UINT8_C(c)
249#undef UINT16_C
250#define UINT16_C(c) __UINT16_C(c)
251#undef UINT32_C
252#define UINT32_C(c) __UINT32_C(c)
253#undef UINT64_C
254#define UINT64_C(c) __UINT64_C(c)
255#undef INTMAX_C
256#define INTMAX_C(c) __INTMAX_C(c)
257#undef UINTMAX_C
258#define UINTMAX_C(c) __UINTMAX_C(c)
259
260#endif /* (!defined __cplusplus || __cplusplus >= 201103L
261 || defined __STDC_CONSTANT_MACROS) */
262
263#if (defined __STDC_WANT_IEC_60559_BFP_EXT__ \
264 || (defined (__STDC_VERSION__) && __STDC_VERSION__ > 201710L))
265/* TS 18661-1 / C2X widths of integer types. */
266
267#ifdef __INT8_TYPE__
268# undef INT8_WIDTH
269# define INT8_WIDTH 8
270#endif
271#ifdef __UINT8_TYPE__
272# undef UINT8_WIDTH
273# define UINT8_WIDTH 8
274#endif
275#ifdef __INT16_TYPE__
276# undef INT16_WIDTH
277# define INT16_WIDTH 16
278#endif
279#ifdef __UINT16_TYPE__
280# undef UINT16_WIDTH
281# define UINT16_WIDTH 16
282#endif
283#ifdef __INT32_TYPE__
284# undef INT32_WIDTH
285# define INT32_WIDTH 32
286#endif
287#ifdef __UINT32_TYPE__
288# undef UINT32_WIDTH
289# define UINT32_WIDTH 32
290#endif
291#ifdef __INT64_TYPE__
292# undef INT64_WIDTH
293# define INT64_WIDTH 64
294#endif
295#ifdef __UINT64_TYPE__
296# undef UINT64_WIDTH
297# define UINT64_WIDTH 64
298#endif
299
300#undef INT_LEAST8_WIDTH
301#define INT_LEAST8_WIDTH __INT_LEAST8_WIDTH__
302#undef UINT_LEAST8_WIDTH
303#define UINT_LEAST8_WIDTH __INT_LEAST8_WIDTH__
304#undef INT_LEAST16_WIDTH
305#define INT_LEAST16_WIDTH __INT_LEAST16_WIDTH__
306#undef UINT_LEAST16_WIDTH
307#define UINT_LEAST16_WIDTH __INT_LEAST16_WIDTH__
308#undef INT_LEAST32_WIDTH
309#define INT_LEAST32_WIDTH __INT_LEAST32_WIDTH__
310#undef UINT_LEAST32_WIDTH
311#define UINT_LEAST32_WIDTH __INT_LEAST32_WIDTH__
312#undef INT_LEAST64_WIDTH
313#define INT_LEAST64_WIDTH __INT_LEAST64_WIDTH__
314#undef UINT_LEAST64_WIDTH
315#define UINT_LEAST64_WIDTH __INT_LEAST64_WIDTH__
316
317#undef INT_FAST8_WIDTH
318#define INT_FAST8_WIDTH __INT_FAST8_WIDTH__
319#undef UINT_FAST8_WIDTH
320#define UINT_FAST8_WIDTH __INT_FAST8_WIDTH__
321#undef INT_FAST16_WIDTH
322#define INT_FAST16_WIDTH __INT_FAST16_WIDTH__
323#undef UINT_FAST16_WIDTH
324#define UINT_FAST16_WIDTH __INT_FAST16_WIDTH__
325#undef INT_FAST32_WIDTH
326#define INT_FAST32_WIDTH __INT_FAST32_WIDTH__
327#undef UINT_FAST32_WIDTH
328#define UINT_FAST32_WIDTH __INT_FAST32_WIDTH__
329#undef INT_FAST64_WIDTH
330#define INT_FAST64_WIDTH __INT_FAST64_WIDTH__
331#undef UINT_FAST64_WIDTH
332#define UINT_FAST64_WIDTH __INT_FAST64_WIDTH__
333
334#ifdef __INTPTR_TYPE__
335# undef INTPTR_WIDTH
336# define INTPTR_WIDTH __INTPTR_WIDTH__
337#endif
338#ifdef __UINTPTR_TYPE__
339# undef UINTPTR_WIDTH
340# define UINTPTR_WIDTH __INTPTR_WIDTH__
341#endif
342
343#undef INTMAX_WIDTH
344#define INTMAX_WIDTH __INTMAX_WIDTH__
345#undef UINTMAX_WIDTH
346#define UINTMAX_WIDTH __INTMAX_WIDTH__
347
348#undef PTRDIFF_WIDTH
349#define PTRDIFF_WIDTH __PTRDIFF_WIDTH__
350
351#undef SIG_ATOMIC_WIDTH
352#define SIG_ATOMIC_WIDTH __SIG_ATOMIC_WIDTH__
353
354#undef SIZE_WIDTH
355#define SIZE_WIDTH __SIZE_WIDTH__
356
357#undef WCHAR_WIDTH
358#define WCHAR_WIDTH __WCHAR_WIDTH__
359
360#undef WINT_WIDTH
361#define WINT_WIDTH __WINT_WIDTH__
362
363#endif
364
365#endif /* _GCC_STDINT_H */
Note: See TracBrowser for help on using the repository browser.