xref: /freebsd/contrib/llvm-project/libcxx/include/stdint.h (revision 2da066ef6d85d3f7cd8aaec14369d66254836536)
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