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