1 | // -*- C++ -*- |
2 | //===----------------------------------------------------------------------===// |
3 | // |
4 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
5 | // See https://llvm.org/LICENSE.txt for license information. |
6 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
7 | // |
8 | //===----------------------------------------------------------------------===// |
9 | |
10 | #ifndef _LIBCPP_STDINT_H |
11 | // AIX system headers need stdint.h to be re-enterable while _STD_TYPES_T |
12 | // is defined until an inclusion of it without _STD_TYPES_T occurs, in which |
13 | // case the header guard macro is defined. |
14 | #if !defined(_AIX) || !defined(_STD_TYPES_T) |
15 | # define _LIBCPP_STDINT_H |
16 | #endif // _STD_TYPES_T |
17 | |
18 | /* |
19 | stdint.h synopsis |
20 | |
21 | Macros: |
22 | |
23 | INT8_MIN |
24 | INT16_MIN |
25 | INT32_MIN |
26 | INT64_MIN |
27 | |
28 | INT8_MAX |
29 | INT16_MAX |
30 | INT32_MAX |
31 | INT64_MAX |
32 | |
33 | UINT8_MAX |
34 | UINT16_MAX |
35 | UINT32_MAX |
36 | UINT64_MAX |
37 | |
38 | INT_LEAST8_MIN |
39 | INT_LEAST16_MIN |
40 | INT_LEAST32_MIN |
41 | INT_LEAST64_MIN |
42 | |
43 | INT_LEAST8_MAX |
44 | INT_LEAST16_MAX |
45 | INT_LEAST32_MAX |
46 | INT_LEAST64_MAX |
47 | |
48 | UINT_LEAST8_MAX |
49 | UINT_LEAST16_MAX |
50 | UINT_LEAST32_MAX |
51 | UINT_LEAST64_MAX |
52 | |
53 | INT_FAST8_MIN |
54 | INT_FAST16_MIN |
55 | INT_FAST32_MIN |
56 | INT_FAST64_MIN |
57 | |
58 | INT_FAST8_MAX |
59 | INT_FAST16_MAX |
60 | INT_FAST32_MAX |
61 | INT_FAST64_MAX |
62 | |
63 | UINT_FAST8_MAX |
64 | UINT_FAST16_MAX |
65 | UINT_FAST32_MAX |
66 | UINT_FAST64_MAX |
67 | |
68 | INTPTR_MIN |
69 | INTPTR_MAX |
70 | UINTPTR_MAX |
71 | |
72 | INTMAX_MIN |
73 | INTMAX_MAX |
74 | |
75 | UINTMAX_MAX |
76 | |
77 | PTRDIFF_MIN |
78 | PTRDIFF_MAX |
79 | |
80 | SIG_ATOMIC_MIN |
81 | SIG_ATOMIC_MAX |
82 | |
83 | SIZE_MAX |
84 | |
85 | WCHAR_MIN |
86 | WCHAR_MAX |
87 | |
88 | WINT_MIN |
89 | WINT_MAX |
90 | |
91 | INT8_C(value) |
92 | INT16_C(value) |
93 | INT32_C(value) |
94 | INT64_C(value) |
95 | |
96 | UINT8_C(value) |
97 | UINT16_C(value) |
98 | UINT32_C(value) |
99 | UINT64_C(value) |
100 | |
101 | INTMAX_C(value) |
102 | UINTMAX_C(value) |
103 | |
104 | */ |
105 | |
106 | #include <__config> |
107 | |
108 | #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) |
109 | # pragma GCC system_header |
110 | #endif |
111 | |
112 | /* C99 stdlib (e.g. glibc < 2.18) does not provide macros needed |
113 | for C++11 unless __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS |
114 | are defined |
115 | */ |
116 | #if defined(__cplusplus) && !defined(__STDC_LIMIT_MACROS) |
117 | # define __STDC_LIMIT_MACROS |
118 | #endif |
119 | #if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS) |
120 | # define __STDC_CONSTANT_MACROS |
121 | #endif |
122 | |
123 | #if __has_include_next(<stdint.h>) |
124 | # include_next <stdint.h> |
125 | #endif |
126 | |
127 | #endif // _LIBCPP_STDINT_H |
128 | |