9 #ifndef __CLANG_STDINT_H
13 #if !defined(_AIX) || !defined(_STD_TYPES_T) || !defined(__STDC_HOSTED__)
14 #define __CLANG_STDINT_H
17 #if defined(__MVS__) && __has_include_next(<stdint.h>)
18 #include_next <stdint.h>
24 #if __STDC_HOSTED__ && __has_include_next(<stdint.h>)
46 # if !defined(__STDC_LIMIT_MACROS)
47 # define __STDC_LIMIT_MACROS
48 # define __STDC_LIMIT_MACROS_DEFINED_BY_CLANG
50 # if !defined(__STDC_CONSTANT_MACROS)
51 # define __STDC_CONSTANT_MACROS
52 # define __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG
56 # include_next <stdint.h>
58 # ifdef __STDC_LIMIT_MACROS_DEFINED_BY_CLANG
59 # undef __STDC_LIMIT_MACROS
60 # undef __STDC_LIMIT_MACROS_DEFINED_BY_CLANG
62 # ifdef __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG
63 # undef __STDC_CONSTANT_MACROS
64 # undef __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG
99 # ifndef __int8_t_defined
100 typedef __INT64_TYPE__
int64_t;
103 # undef __int_least64_t
104 # define __int_least64_t int64_t
105 # undef __uint_least64_t
106 # define __uint_least64_t uint64_t
107 # undef __int_least32_t
108 # define __int_least32_t int64_t
109 # undef __uint_least32_t
110 # define __uint_least32_t uint64_t
111 # undef __int_least16_t
112 # define __int_least16_t int64_t
113 # undef __uint_least16_t
114 # define __uint_least16_t uint64_t
115 # undef __int_least8_t
116 # define __int_least8_t int64_t
117 # undef __uint_least8_t
118 # define __uint_least8_t uint64_t
121 #ifdef __int_least64_t
122 typedef __int_least64_t int_least64_t;
123 typedef __uint_least64_t uint_least64_t;
124 typedef __int_least64_t int_fast64_t;
125 typedef __uint_least64_t uint_fast64_t;
128 #ifdef __INT56_TYPE__
129 typedef __INT56_TYPE__ int56_t;
130 typedef __UINT56_TYPE__ uint56_t;
131 typedef int56_t int_least56_t;
132 typedef uint56_t uint_least56_t;
133 typedef int56_t int_fast56_t;
134 typedef uint56_t uint_fast56_t;
135 # undef __int_least32_t
136 # define __int_least32_t int56_t
137 # undef __uint_least32_t
138 # define __uint_least32_t uint56_t
139 # undef __int_least16_t
140 # define __int_least16_t int56_t
141 # undef __uint_least16_t
142 # define __uint_least16_t uint56_t
143 # undef __int_least8_t
144 # define __int_least8_t int56_t
145 # undef __uint_least8_t
146 # define __uint_least8_t uint56_t
150 #ifdef __INT48_TYPE__
151 typedef __INT48_TYPE__ int48_t;
152 typedef __UINT48_TYPE__ uint48_t;
153 typedef int48_t int_least48_t;
154 typedef uint48_t uint_least48_t;
155 typedef int48_t int_fast48_t;
156 typedef uint48_t uint_fast48_t;
157 # undef __int_least32_t
158 # define __int_least32_t int48_t
159 # undef __uint_least32_t
160 # define __uint_least32_t uint48_t
161 # undef __int_least16_t
162 # define __int_least16_t int48_t
163 # undef __uint_least16_t
164 # define __uint_least16_t uint48_t
165 # undef __int_least8_t
166 # define __int_least8_t int48_t
167 # undef __uint_least8_t
168 # define __uint_least8_t uint48_t
172 #ifdef __INT40_TYPE__
173 typedef __INT40_TYPE__ int40_t;
174 typedef __UINT40_TYPE__ uint40_t;
175 typedef int40_t int_least40_t;
176 typedef uint40_t uint_least40_t;
177 typedef int40_t int_fast40_t;
178 typedef uint40_t uint_fast40_t;
179 # undef __int_least32_t
180 # define __int_least32_t int40_t
181 # undef __uint_least32_t
182 # define __uint_least32_t uint40_t
183 # undef __int_least16_t
184 # define __int_least16_t int40_t
185 # undef __uint_least16_t
186 # define __uint_least16_t uint40_t
187 # undef __int_least8_t
188 # define __int_least8_t int40_t
189 # undef __uint_least8_t
190 # define __uint_least8_t uint40_t
194 #ifdef __INT32_TYPE__
196 # ifndef __int8_t_defined
197 typedef __INT32_TYPE__ int32_t;
200 # ifndef __uint32_t_defined
201 # define __uint32_t_defined
202 typedef __UINT32_TYPE__ uint32_t;
205 # undef __int_least32_t
206 # define __int_least32_t int32_t
207 # undef __uint_least32_t
208 # define __uint_least32_t uint32_t
209 # undef __int_least16_t
210 # define __int_least16_t int32_t
211 # undef __uint_least16_t
212 # define __uint_least16_t uint32_t
213 # undef __int_least8_t
214 # define __int_least8_t int32_t
215 # undef __uint_least8_t
216 # define __uint_least8_t uint32_t
219 #ifdef __int_least32_t
220 typedef __int_least32_t int_least32_t;
221 typedef __uint_least32_t uint_least32_t;
222 typedef __int_least32_t int_fast32_t;
223 typedef __uint_least32_t uint_fast32_t;
226 #ifdef __INT24_TYPE__
227 typedef __INT24_TYPE__ int24_t;
228 typedef __UINT24_TYPE__ uint24_t;
229 typedef int24_t int_least24_t;
230 typedef uint24_t uint_least24_t;
231 typedef int24_t int_fast24_t;
232 typedef uint24_t uint_fast24_t;
233 # undef __int_least16_t
234 # define __int_least16_t int24_t
235 # undef __uint_least16_t
236 # define __uint_least16_t uint24_t
237 # undef __int_least8_t
238 # define __int_least8_t int24_t
239 # undef __uint_least8_t
240 # define __uint_least8_t uint24_t
243 #ifdef __INT16_TYPE__
244 #ifndef __int8_t_defined
245 typedef __INT16_TYPE__ int16_t;
247 typedef __UINT16_TYPE__ uint16_t;
248 # undef __int_least16_t
249 # define __int_least16_t int16_t
250 # undef __uint_least16_t
251 # define __uint_least16_t uint16_t
252 # undef __int_least8_t
253 # define __int_least8_t int16_t
254 # undef __uint_least8_t
255 # define __uint_least8_t uint16_t
258 #ifdef __int_least16_t
259 typedef __int_least16_t int_least16_t;
260 typedef __uint_least16_t uint_least16_t;
261 typedef __int_least16_t int_fast16_t;
262 typedef __uint_least16_t uint_fast16_t;
267 #ifndef __int8_t_defined
268 typedef __INT8_TYPE__ int8_t;
270 typedef __UINT8_TYPE__ uint8_t;
271 # undef __int_least8_t
272 # define __int_least8_t int8_t
273 # undef __uint_least8_t
274 # define __uint_least8_t uint8_t
277 #ifdef __int_least8_t
278 typedef __int_least8_t int_least8_t;
279 typedef __uint_least8_t uint_least8_t;
280 typedef __int_least8_t int_fast8_t;
281 typedef __uint_least8_t uint_fast8_t;
285 #ifndef __int8_t_defined
286 # define __int8_t_defined
291 #define __stdint_join3(a,b,c) a ## b ## c
294 #ifndef __intptr_t_defined
296 #define __intptr_t_defined
328 #define __int_c_join(a, b) a ## b
329 #define __int_c(v, suffix) __int_c_join(v, suffix)
330 #define __uint_c(v, suffix) __int_c_join(v##U, suffix)
333 #ifdef __INT64_TYPE__
334 # undef __int64_c_suffix
335 # undef __int32_c_suffix
336 # undef __int16_c_suffix
337 # undef __int8_c_suffix
338 # ifdef __INT64_C_SUFFIX__
339 # define __int64_c_suffix __INT64_C_SUFFIX__
340 # define __int32_c_suffix __INT64_C_SUFFIX__
341 # define __int16_c_suffix __INT64_C_SUFFIX__
342 # define __int8_c_suffix __INT64_C_SUFFIX__
346 #ifdef __int_least64_t
347 # ifdef __int64_c_suffix
348 # define INT64_C(v) __int_c(v, __int64_c_suffix)
349 # define UINT64_C(v) __uint_c(v, __int64_c_suffix)
351 # define INT64_C(v) v
352 # define UINT64_C(v) v ## U
357 #ifdef __INT56_TYPE__
358 # undef __int32_c_suffix
359 # undef __int16_c_suffix
360 # undef __int8_c_suffix
361 # ifdef __INT56_C_SUFFIX__
362 # define INT56_C(v) __int_c(v, __INT56_C_SUFFIX__)
363 # define UINT56_C(v) __uint_c(v, __INT56_C_SUFFIX__)
364 # define __int32_c_suffix __INT56_C_SUFFIX__
365 # define __int16_c_suffix __INT56_C_SUFFIX__
366 # define __int8_c_suffix __INT56_C_SUFFIX__
368 # define INT56_C(v) v
369 # define UINT56_C(v) v ## U
374 #ifdef __INT48_TYPE__
375 # undef __int32_c_suffix
376 # undef __int16_c_suffix
377 # undef __int8_c_suffix
378 # ifdef __INT48_C_SUFFIX__
379 # define INT48_C(v) __int_c(v, __INT48_C_SUFFIX__)
380 # define UINT48_C(v) __uint_c(v, __INT48_C_SUFFIX__)
381 # define __int32_c_suffix __INT48_C_SUFFIX__
382 # define __int16_c_suffix __INT48_C_SUFFIX__
383 # define __int8_c_suffix __INT48_C_SUFFIX__
385 # define INT48_C(v) v
386 # define UINT48_C(v) v ## U
391 #ifdef __INT40_TYPE__
392 # undef __int32_c_suffix
393 # undef __int16_c_suffix
394 # undef __int8_c_suffix
395 # ifdef __INT40_C_SUFFIX__
396 # define INT40_C(v) __int_c(v, __INT40_C_SUFFIX__)
397 # define UINT40_C(v) __uint_c(v, __INT40_C_SUFFIX__)
398 # define __int32_c_suffix __INT40_C_SUFFIX__
399 # define __int16_c_suffix __INT40_C_SUFFIX__
400 # define __int8_c_suffix __INT40_C_SUFFIX__
402 # define INT40_C(v) v
403 # define UINT40_C(v) v ## U
408 #ifdef __INT32_TYPE__
409 # undef __int32_c_suffix
410 # undef __int16_c_suffix
411 # undef __int8_c_suffix
412 # ifdef __INT32_C_SUFFIX__
413 # define __int32_c_suffix __INT32_C_SUFFIX__
414 # define __int16_c_suffix __INT32_C_SUFFIX__
415 # define __int8_c_suffix __INT32_C_SUFFIX__
419 #ifdef __int_least32_t
420 # ifdef __int32_c_suffix
421 # define INT32_C(v) __int_c(v, __int32_c_suffix)
422 # define UINT32_C(v) __uint_c(v, __int32_c_suffix)
424 # define INT32_C(v) v
425 # define UINT32_C(v) v ## U
430 #ifdef __INT24_TYPE__
431 # undef __int16_c_suffix
432 # undef __int8_c_suffix
433 # ifdef __INT24_C_SUFFIX__
434 # define INT24_C(v) __int_c(v, __INT24_C_SUFFIX__)
435 # define UINT24_C(v) __uint_c(v, __INT24_C_SUFFIX__)
436 # define __int16_c_suffix __INT24_C_SUFFIX__
437 # define __int8_c_suffix __INT24_C_SUFFIX__
439 # define INT24_C(v) v
440 # define UINT24_C(v) v ## U
445 #ifdef __INT16_TYPE__
446 # undef __int16_c_suffix
447 # undef __int8_c_suffix
448 # ifdef __INT16_C_SUFFIX__
449 # define __int16_c_suffix __INT16_C_SUFFIX__
450 # define __int8_c_suffix __INT16_C_SUFFIX__
454 #ifdef __int_least16_t
455 # ifdef __int16_c_suffix
456 # define INT16_C(v) __int_c(v, __int16_c_suffix)
457 # define UINT16_C(v) __uint_c(v, __int16_c_suffix)
459 # define INT16_C(v) v
460 # define UINT16_C(v) v ## U
466 # undef __int8_c_suffix
467 # ifdef __INT8_C_SUFFIX__
468 # define __int8_c_suffix __INT8_C_SUFFIX__
472 #ifdef __int_least8_t
473 # ifdef __int8_c_suffix
474 # define INT8_C(v) __int_c(v, __int8_c_suffix)
475 # define UINT8_C(v) __uint_c(v, __int8_c_suffix)
478 # define UINT8_C(v) v ## U
502 #ifdef __INT64_TYPE__
503 # define INT64_MAX INT64_C( 9223372036854775807)
504 # define INT64_MIN (-INT64_C( 9223372036854775807)-1)
505 # define UINT64_MAX UINT64_C(18446744073709551615)
507 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
508 # define UINT64_WIDTH 64
509 # define INT64_WIDTH UINT64_WIDTH
511 # define __UINT_LEAST64_WIDTH UINT64_WIDTH
512 # undef __UINT_LEAST32_WIDTH
513 # define __UINT_LEAST32_WIDTH UINT64_WIDTH
514 # undef __UINT_LEAST16_WIDTH
515 # define __UINT_LEAST16_WIDTH UINT64_WIDTH
516 # undef __UINT_LEAST8_MAX
517 # define __UINT_LEAST8_MAX UINT64_MAX
520 # define __INT_LEAST64_MIN INT64_MIN
521 # define __INT_LEAST64_MAX INT64_MAX
522 # define __UINT_LEAST64_MAX UINT64_MAX
523 # undef __INT_LEAST32_MIN
524 # define __INT_LEAST32_MIN INT64_MIN
525 # undef __INT_LEAST32_MAX
526 # define __INT_LEAST32_MAX INT64_MAX
527 # undef __UINT_LEAST32_MAX
528 # define __UINT_LEAST32_MAX UINT64_MAX
529 # undef __INT_LEAST16_MIN
530 # define __INT_LEAST16_MIN INT64_MIN
531 # undef __INT_LEAST16_MAX
532 # define __INT_LEAST16_MAX INT64_MAX
533 # undef __UINT_LEAST16_MAX
534 # define __UINT_LEAST16_MAX UINT64_MAX
535 # undef __INT_LEAST8_MIN
536 # define __INT_LEAST8_MIN INT64_MIN
537 # undef __INT_LEAST8_MAX
538 # define __INT_LEAST8_MAX INT64_MAX
539 # undef __UINT_LEAST8_MAX
540 # define __UINT_LEAST8_MAX UINT64_MAX
543 #ifdef __INT_LEAST64_MIN
544 # define INT_LEAST64_MIN __INT_LEAST64_MIN
545 # define INT_LEAST64_MAX __INT_LEAST64_MAX
546 # define UINT_LEAST64_MAX __UINT_LEAST64_MAX
547 # define INT_FAST64_MIN __INT_LEAST64_MIN
548 # define INT_FAST64_MAX __INT_LEAST64_MAX
549 # define UINT_FAST64_MAX __UINT_LEAST64_MAX
551 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
552 # define UINT_LEAST64_WIDTH __UINT_LEAST64_WIDTH
553 # define INT_LEAST64_WIDTH UINT_LEAST64_WIDTH
554 # define UINT_FAST64_WIDTH __UINT_LEAST64_WIDTH
555 # define INT_FAST64_WIDTH UINT_FAST64_WIDTH
560 #ifdef __INT56_TYPE__
561 # define INT56_MAX INT56_C(36028797018963967)
562 # define INT56_MIN (-INT56_C(36028797018963967)-1)
563 # define UINT56_MAX UINT56_C(72057594037927935)
564 # define INT_LEAST56_MIN INT56_MIN
565 # define INT_LEAST56_MAX INT56_MAX
566 # define UINT_LEAST56_MAX UINT56_MAX
567 # define INT_FAST56_MIN INT56_MIN
568 # define INT_FAST56_MAX INT56_MAX
569 # define UINT_FAST56_MAX UINT56_MAX
571 # undef __INT_LEAST32_MIN
572 # define __INT_LEAST32_MIN INT56_MIN
573 # undef __INT_LEAST32_MAX
574 # define __INT_LEAST32_MAX INT56_MAX
575 # undef __UINT_LEAST32_MAX
576 # define __UINT_LEAST32_MAX UINT56_MAX
577 # undef __INT_LEAST16_MIN
578 # define __INT_LEAST16_MIN INT56_MIN
579 # undef __INT_LEAST16_MAX
580 # define __INT_LEAST16_MAX INT56_MAX
581 # undef __UINT_LEAST16_MAX
582 # define __UINT_LEAST16_MAX UINT56_MAX
583 # undef __INT_LEAST8_MIN
584 # define __INT_LEAST8_MIN INT56_MIN
585 # undef __INT_LEAST8_MAX
586 # define __INT_LEAST8_MAX INT56_MAX
587 # undef __UINT_LEAST8_MAX
588 # define __UINT_LEAST8_MAX UINT56_MAX
590 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
591 # define UINT56_WIDTH 56
592 # define INT56_WIDTH UINT56_WIDTH
593 # define UINT_LEAST56_WIDTH UINT56_WIDTH
594 # define INT_LEAST56_WIDTH UINT_LEAST56_WIDTH
595 # define UINT_FAST56_WIDTH UINT56_WIDTH
596 # define INT_FAST56_WIDTH UINT_FAST56_WIDTH
597 # undef __UINT_LEAST32_WIDTH
598 # define __UINT_LEAST32_WIDTH UINT56_WIDTH
599 # undef __UINT_LEAST16_WIDTH
600 # define __UINT_LEAST16_WIDTH UINT56_WIDTH
601 # undef __UINT_LEAST8_WIDTH
602 # define __UINT_LEAST8_WIDTH UINT56_WIDTH
607 #ifdef __INT48_TYPE__
608 # define INT48_MAX INT48_C(140737488355327)
609 # define INT48_MIN (-INT48_C(140737488355327)-1)
610 # define UINT48_MAX UINT48_C(281474976710655)
611 # define INT_LEAST48_MIN INT48_MIN
612 # define INT_LEAST48_MAX INT48_MAX
613 # define UINT_LEAST48_MAX UINT48_MAX
614 # define INT_FAST48_MIN INT48_MIN
615 # define INT_FAST48_MAX INT48_MAX
616 # define UINT_FAST48_MAX UINT48_MAX
618 # undef __INT_LEAST32_MIN
619 # define __INT_LEAST32_MIN INT48_MIN
620 # undef __INT_LEAST32_MAX
621 # define __INT_LEAST32_MAX INT48_MAX
622 # undef __UINT_LEAST32_MAX
623 # define __UINT_LEAST32_MAX UINT48_MAX
624 # undef __INT_LEAST16_MIN
625 # define __INT_LEAST16_MIN INT48_MIN
626 # undef __INT_LEAST16_MAX
627 # define __INT_LEAST16_MAX INT48_MAX
628 # undef __UINT_LEAST16_MAX
629 # define __UINT_LEAST16_MAX UINT48_MAX
630 # undef __INT_LEAST8_MIN
631 # define __INT_LEAST8_MIN INT48_MIN
632 # undef __INT_LEAST8_MAX
633 # define __INT_LEAST8_MAX INT48_MAX
634 # undef __UINT_LEAST8_MAX
635 # define __UINT_LEAST8_MAX UINT48_MAX
637 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
638 #define UINT48_WIDTH 48
639 #define INT48_WIDTH UINT48_WIDTH
640 #define UINT_LEAST48_WIDTH UINT48_WIDTH
641 #define INT_LEAST48_WIDTH UINT_LEAST48_WIDTH
642 #define UINT_FAST48_WIDTH UINT48_WIDTH
643 #define INT_FAST48_WIDTH UINT_FAST48_WIDTH
644 #undef __UINT_LEAST32_WIDTH
645 #define __UINT_LEAST32_WIDTH UINT48_WIDTH
646 # undef __UINT_LEAST16_WIDTH
647 #define __UINT_LEAST16_WIDTH UINT48_WIDTH
648 # undef __UINT_LEAST8_WIDTH
649 #define __UINT_LEAST8_WIDTH UINT48_WIDTH
654 #ifdef __INT40_TYPE__
655 # define INT40_MAX INT40_C(549755813887)
656 # define INT40_MIN (-INT40_C(549755813887)-1)
657 # define UINT40_MAX UINT40_C(1099511627775)
658 # define INT_LEAST40_MIN INT40_MIN
659 # define INT_LEAST40_MAX INT40_MAX
660 # define UINT_LEAST40_MAX UINT40_MAX
661 # define INT_FAST40_MIN INT40_MIN
662 # define INT_FAST40_MAX INT40_MAX
663 # define UINT_FAST40_MAX UINT40_MAX
665 # undef __INT_LEAST32_MIN
666 # define __INT_LEAST32_MIN INT40_MIN
667 # undef __INT_LEAST32_MAX
668 # define __INT_LEAST32_MAX INT40_MAX
669 # undef __UINT_LEAST32_MAX
670 # define __UINT_LEAST32_MAX UINT40_MAX
671 # undef __INT_LEAST16_MIN
672 # define __INT_LEAST16_MIN INT40_MIN
673 # undef __INT_LEAST16_MAX
674 # define __INT_LEAST16_MAX INT40_MAX
675 # undef __UINT_LEAST16_MAX
676 # define __UINT_LEAST16_MAX UINT40_MAX
677 # undef __INT_LEAST8_MIN
678 # define __INT_LEAST8_MIN INT40_MIN
679 # undef __INT_LEAST8_MAX
680 # define __INT_LEAST8_MAX INT40_MAX
681 # undef __UINT_LEAST8_MAX
682 # define __UINT_LEAST8_MAX UINT40_MAX
684 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
685 # define UINT40_WIDTH 40
686 # define INT40_WIDTH UINT40_WIDTH
687 # define UINT_LEAST40_WIDTH UINT40_WIDTH
688 # define INT_LEAST40_WIDTH UINT_LEAST40_WIDTH
689 # define UINT_FAST40_WIDTH UINT40_WIDTH
690 # define INT_FAST40_WIDTH UINT_FAST40_WIDTH
691 # undef __UINT_LEAST32_WIDTH
692 # define __UINT_LEAST32_WIDTH UINT40_WIDTH
693 # undef __UINT_LEAST16_WIDTH
694 # define __UINT_LEAST16_WIDTH UINT40_WIDTH
695 # undef __UINT_LEAST8_WIDTH
696 # define __UINT_LEAST8_WIDTH UINT40_WIDTH
701 #ifdef __INT32_TYPE__
702 # define INT32_MAX INT32_C(2147483647)
703 # define INT32_MIN (-INT32_C(2147483647)-1)
704 # define UINT32_MAX UINT32_C(4294967295)
706 # undef __INT_LEAST32_MIN
707 # define __INT_LEAST32_MIN INT32_MIN
708 # undef __INT_LEAST32_MAX
709 # define __INT_LEAST32_MAX INT32_MAX
710 # undef __UINT_LEAST32_MAX
711 # define __UINT_LEAST32_MAX UINT32_MAX
712 # undef __INT_LEAST16_MIN
713 # define __INT_LEAST16_MIN INT32_MIN
714 # undef __INT_LEAST16_MAX
715 # define __INT_LEAST16_MAX INT32_MAX
716 # undef __UINT_LEAST16_MAX
717 # define __UINT_LEAST16_MAX UINT32_MAX
718 # undef __INT_LEAST8_MIN
719 # define __INT_LEAST8_MIN INT32_MIN
720 # undef __INT_LEAST8_MAX
721 # define __INT_LEAST8_MAX INT32_MAX
722 # undef __UINT_LEAST8_MAX
723 # define __UINT_LEAST8_MAX UINT32_MAX
725 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
726 # define UINT32_WIDTH 32
727 # define INT32_WIDTH UINT32_WIDTH
728 # undef __UINT_LEAST32_WIDTH
729 # define __UINT_LEAST32_WIDTH UINT32_WIDTH
730 # undef __UINT_LEAST16_WIDTH
731 # define __UINT_LEAST16_WIDTH UINT32_WIDTH
732 # undef __UINT_LEAST8_WIDTH
733 # define __UINT_LEAST8_WIDTH UINT32_WIDTH
737 #ifdef __INT_LEAST32_MIN
738 # define INT_LEAST32_MIN __INT_LEAST32_MIN
739 # define INT_LEAST32_MAX __INT_LEAST32_MAX
740 # define UINT_LEAST32_MAX __UINT_LEAST32_MAX
741 # define INT_FAST32_MIN __INT_LEAST32_MIN
742 # define INT_FAST32_MAX __INT_LEAST32_MAX
743 # define UINT_FAST32_MAX __UINT_LEAST32_MAX
745 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
746 # define UINT_LEAST32_WIDTH __UINT_LEAST32_WIDTH
747 # define INT_LEAST32_WIDTH UINT_LEAST32_WIDTH
748 # define UINT_FAST32_WIDTH __UINT_LEAST32_WIDTH
749 # define INT_FAST32_WIDTH UINT_FAST32_WIDTH
754 #ifdef __INT24_TYPE__
755 # define INT24_MAX INT24_C(8388607)
756 # define INT24_MIN (-INT24_C(8388607)-1)
757 # define UINT24_MAX UINT24_C(16777215)
758 # define INT_LEAST24_MIN INT24_MIN
759 # define INT_LEAST24_MAX INT24_MAX
760 # define UINT_LEAST24_MAX UINT24_MAX
761 # define INT_FAST24_MIN INT24_MIN
762 # define INT_FAST24_MAX INT24_MAX
763 # define UINT_FAST24_MAX UINT24_MAX
765 # undef __INT_LEAST16_MIN
766 # define __INT_LEAST16_MIN INT24_MIN
767 # undef __INT_LEAST16_MAX
768 # define __INT_LEAST16_MAX INT24_MAX
769 # undef __UINT_LEAST16_MAX
770 # define __UINT_LEAST16_MAX UINT24_MAX
771 # undef __INT_LEAST8_MIN
772 # define __INT_LEAST8_MIN INT24_MIN
773 # undef __INT_LEAST8_MAX
774 # define __INT_LEAST8_MAX INT24_MAX
775 # undef __UINT_LEAST8_MAX
776 # define __UINT_LEAST8_MAX UINT24_MAX
778 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
779 # define UINT24_WIDTH 24
780 # define INT24_WIDTH UINT24_WIDTH
781 # define UINT_LEAST24_WIDTH UINT24_WIDTH
782 # define INT_LEAST24_WIDTH UINT_LEAST24_WIDTH
783 # define UINT_FAST24_WIDTH UINT24_WIDTH
784 # define INT_FAST24_WIDTH UINT_FAST24_WIDTH
785 # undef __UINT_LEAST16_WIDTH
786 # define __UINT_LEAST16_WIDTH UINT24_WIDTH
787 # undef __UINT_LEAST8_WIDTH
788 # define __UINT_LEAST8_WIDTH UINT24_WIDTH
793 #ifdef __INT16_TYPE__
794 #define INT16_MAX INT16_C(32767)
795 #define INT16_MIN (-INT16_C(32767)-1)
796 #define UINT16_MAX UINT16_C(65535)
798 # undef __INT_LEAST16_MIN
799 # define __INT_LEAST16_MIN INT16_MIN
800 # undef __INT_LEAST16_MAX
801 # define __INT_LEAST16_MAX INT16_MAX
802 # undef __UINT_LEAST16_MAX
803 # define __UINT_LEAST16_MAX UINT16_MAX
804 # undef __INT_LEAST8_MIN
805 # define __INT_LEAST8_MIN INT16_MIN
806 # undef __INT_LEAST8_MAX
807 # define __INT_LEAST8_MAX INT16_MAX
808 # undef __UINT_LEAST8_MAX
809 # define __UINT_LEAST8_MAX UINT16_MAX
811 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
812 # define UINT16_WIDTH 16
813 # define INT16_WIDTH UINT16_WIDTH
814 # undef __UINT_LEAST16_WIDTH
815 # define __UINT_LEAST16_WIDTH UINT16_WIDTH
816 # undef __UINT_LEAST8_WIDTH
817 # define __UINT_LEAST8_WIDTH UINT16_WIDTH
821 #ifdef __INT_LEAST16_MIN
822 # define INT_LEAST16_MIN __INT_LEAST16_MIN
823 # define INT_LEAST16_MAX __INT_LEAST16_MAX
824 # define UINT_LEAST16_MAX __UINT_LEAST16_MAX
825 # define INT_FAST16_MIN __INT_LEAST16_MIN
826 # define INT_FAST16_MAX __INT_LEAST16_MAX
827 # define UINT_FAST16_MAX __UINT_LEAST16_MAX
829 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
830 # define UINT_LEAST16_WIDTH __UINT_LEAST16_WIDTH
831 # define INT_LEAST16_WIDTH UINT_LEAST16_WIDTH
832 # define UINT_FAST16_WIDTH __UINT_LEAST16_WIDTH
833 # define INT_FAST16_WIDTH UINT_FAST16_WIDTH
839 # define INT8_MAX INT8_C(127)
840 # define INT8_MIN (-INT8_C(127)-1)
841 # define UINT8_MAX UINT8_C(255)
843 # undef __INT_LEAST8_MIN
844 # define __INT_LEAST8_MIN INT8_MIN
845 # undef __INT_LEAST8_MAX
846 # define __INT_LEAST8_MAX INT8_MAX
847 # undef __UINT_LEAST8_MAX
848 # define __UINT_LEAST8_MAX UINT8_MAX
850 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
851 # define UINT8_WIDTH 8
852 # define INT8_WIDTH UINT8_WIDTH
853 # undef __UINT_LEAST8_WIDTH
854 # define __UINT_LEAST8_WIDTH UINT8_WIDTH
858 #ifdef __INT_LEAST8_MIN
859 # define INT_LEAST8_MIN __INT_LEAST8_MIN
860 # define INT_LEAST8_MAX __INT_LEAST8_MAX
861 # define UINT_LEAST8_MAX __UINT_LEAST8_MAX
862 # define INT_FAST8_MIN __INT_LEAST8_MIN
863 # define INT_FAST8_MAX __INT_LEAST8_MAX
864 # define UINT_FAST8_MAX __UINT_LEAST8_MAX
866 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
867 # define UINT_LEAST8_WIDTH __UINT_LEAST8_WIDTH
868 # define INT_LEAST8_WIDTH UINT_LEAST8_WIDTH
869 # define UINT_FAST8_WIDTH __UINT_LEAST8_WIDTH
870 # define INT_FAST8_WIDTH UINT_FAST8_WIDTH
875 #define __INTN_MIN(n) __stdint_join3( INT, n, _MIN)
876 #define __INTN_MAX(n) __stdint_join3( INT, n, _MAX)
877 #define __UINTN_MAX(n) __stdint_join3(UINT, n, _MAX)
878 #define __INTN_C(n, v) __stdint_join3( INT, n, _C(v))
879 #define __UINTN_C(n, v) __stdint_join3(UINT, n, _C(v))
884 #define INTPTR_MIN (-__INTPTR_MAX__-1)
885 #define INTPTR_MAX __INTPTR_MAX__
886 #define UINTPTR_MAX __UINTPTR_MAX__
887 #define PTRDIFF_MIN (-__PTRDIFF_MAX__-1)
888 #define PTRDIFF_MAX __PTRDIFF_MAX__
889 #define SIZE_MAX __SIZE_MAX__
892 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
895 #define INTPTR_WIDTH __INTPTR_WIDTH__
896 #define UINTPTR_WIDTH __UINTPTR_WIDTH__
901 #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1
902 #define RSIZE_MAX (SIZE_MAX >> 1)
906 #define INTMAX_MIN (-__INTMAX_MAX__-1)
907 #define INTMAX_MAX __INTMAX_MAX__
908 #define UINTMAX_MAX __UINTMAX_MAX__
911 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
914 #define INTMAX_WIDTH __INTMAX_WIDTH__
915 #define UINTMAX_WIDTH __UINTMAX_WIDTH__
919 #define SIG_ATOMIC_MIN __INTN_MIN(__SIG_ATOMIC_WIDTH__)
920 #define SIG_ATOMIC_MAX __INTN_MAX(__SIG_ATOMIC_WIDTH__)
921 #ifdef __WINT_UNSIGNED__
922 # define WINT_MIN __UINTN_C(__WINT_WIDTH__, 0)
923 # define WINT_MAX __UINTN_MAX(__WINT_WIDTH__)
925 # define WINT_MIN __INTN_MIN(__WINT_WIDTH__)
926 # define WINT_MAX __INTN_MAX(__WINT_WIDTH__)
930 # define WCHAR_MAX __WCHAR_MAX__
933 # if __WCHAR_MAX__ == __INTN_MAX(__WCHAR_WIDTH__)
934 # define WCHAR_MIN __INTN_MIN(__WCHAR_WIDTH__)
936 # define WCHAR_MIN __UINTN_C(__WCHAR_WIDTH__, 0)
941 #define INTMAX_C(v) __int_c(v, __INTMAX_C_SUFFIX__)
942 #define UINTMAX_C(v) __int_c(v, __UINTMAX_C_SUFFIX__)
945 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
946 #define PTRDIFF_WIDTH __PTRDIFF_WIDTH__
947 #define SIG_ATOMIC_WIDTH __SIG_ATOMIC_WIDTH__
948 #define SIZE_WIDTH __SIZE_WIDTH__
949 #define WCHAR_WIDTH __WCHAR_WIDTH__
950 #define WINT_WIDTH __WINT_WIDTH__
__UINTPTR_TYPE__ uintptr_t
__UINTMAX_TYPE__ uintmax_t