1*aed8d94eSDimitry Andric // -*- C++ -*-
2*aed8d94eSDimitry Andric //===---------------------------- stdint.h --------------------------------===//
3*aed8d94eSDimitry Andric //
4*aed8d94eSDimitry Andric //                     The LLVM Compiler Infrastructure
5*aed8d94eSDimitry Andric //
6*aed8d94eSDimitry Andric // This file is distributed under the University of Illinois Open Source
7*aed8d94eSDimitry Andric // License. See LICENSE.TXT for details.
8*aed8d94eSDimitry Andric //
9*aed8d94eSDimitry Andric //===----------------------------------------------------------------------===//
10*aed8d94eSDimitry Andric 
11*aed8d94eSDimitry Andric #ifndef _LIBCPP_STDINT_H
12*aed8d94eSDimitry Andric #define _LIBCPP_STDINT_H
13*aed8d94eSDimitry Andric 
14*aed8d94eSDimitry Andric /*
15*aed8d94eSDimitry Andric     stdint.h synopsis
16*aed8d94eSDimitry Andric 
17*aed8d94eSDimitry Andric Macros:
18*aed8d94eSDimitry Andric 
19*aed8d94eSDimitry Andric     INT8_MIN
20*aed8d94eSDimitry Andric     INT16_MIN
21*aed8d94eSDimitry Andric     INT32_MIN
22*aed8d94eSDimitry Andric     INT64_MIN
23*aed8d94eSDimitry Andric 
24*aed8d94eSDimitry Andric     INT8_MAX
25*aed8d94eSDimitry Andric     INT16_MAX
26*aed8d94eSDimitry Andric     INT32_MAX
27*aed8d94eSDimitry Andric     INT64_MAX
28*aed8d94eSDimitry Andric 
29*aed8d94eSDimitry Andric     UINT8_MAX
30*aed8d94eSDimitry Andric     UINT16_MAX
31*aed8d94eSDimitry Andric     UINT32_MAX
32*aed8d94eSDimitry Andric     UINT64_MAX
33*aed8d94eSDimitry Andric 
34*aed8d94eSDimitry Andric     INT_LEAST8_MIN
35*aed8d94eSDimitry Andric     INT_LEAST16_MIN
36*aed8d94eSDimitry Andric     INT_LEAST32_MIN
37*aed8d94eSDimitry Andric     INT_LEAST64_MIN
38*aed8d94eSDimitry Andric 
39*aed8d94eSDimitry Andric     INT_LEAST8_MAX
40*aed8d94eSDimitry Andric     INT_LEAST16_MAX
41*aed8d94eSDimitry Andric     INT_LEAST32_MAX
42*aed8d94eSDimitry Andric     INT_LEAST64_MAX
43*aed8d94eSDimitry Andric 
44*aed8d94eSDimitry Andric     UINT_LEAST8_MAX
45*aed8d94eSDimitry Andric     UINT_LEAST16_MAX
46*aed8d94eSDimitry Andric     UINT_LEAST32_MAX
47*aed8d94eSDimitry Andric     UINT_LEAST64_MAX
48*aed8d94eSDimitry Andric 
49*aed8d94eSDimitry Andric     INT_FAST8_MIN
50*aed8d94eSDimitry Andric     INT_FAST16_MIN
51*aed8d94eSDimitry Andric     INT_FAST32_MIN
52*aed8d94eSDimitry Andric     INT_FAST64_MIN
53*aed8d94eSDimitry Andric 
54*aed8d94eSDimitry Andric     INT_FAST8_MAX
55*aed8d94eSDimitry Andric     INT_FAST16_MAX
56*aed8d94eSDimitry Andric     INT_FAST32_MAX
57*aed8d94eSDimitry Andric     INT_FAST64_MAX
58*aed8d94eSDimitry Andric 
59*aed8d94eSDimitry Andric     UINT_FAST8_MAX
60*aed8d94eSDimitry Andric     UINT_FAST16_MAX
61*aed8d94eSDimitry Andric     UINT_FAST32_MAX
62*aed8d94eSDimitry Andric     UINT_FAST64_MAX
63*aed8d94eSDimitry Andric 
64*aed8d94eSDimitry Andric     INTPTR_MIN
65*aed8d94eSDimitry Andric     INTPTR_MAX
66*aed8d94eSDimitry Andric     UINTPTR_MAX
67*aed8d94eSDimitry Andric 
68*aed8d94eSDimitry Andric     INTMAX_MIN
69*aed8d94eSDimitry Andric     INTMAX_MAX
70*aed8d94eSDimitry Andric 
71*aed8d94eSDimitry Andric     UINTMAX_MAX
72*aed8d94eSDimitry Andric 
73*aed8d94eSDimitry Andric     PTRDIFF_MIN
74*aed8d94eSDimitry Andric     PTRDIFF_MAX
75*aed8d94eSDimitry Andric 
76*aed8d94eSDimitry Andric     SIG_ATOMIC_MIN
77*aed8d94eSDimitry Andric     SIG_ATOMIC_MAX
78*aed8d94eSDimitry Andric 
79*aed8d94eSDimitry Andric     SIZE_MAX
80*aed8d94eSDimitry Andric 
81*aed8d94eSDimitry Andric     WCHAR_MIN
82*aed8d94eSDimitry Andric     WCHAR_MAX
83*aed8d94eSDimitry Andric 
84*aed8d94eSDimitry Andric     WINT_MIN
85*aed8d94eSDimitry Andric     WINT_MAX
86*aed8d94eSDimitry Andric 
87*aed8d94eSDimitry Andric     INT8_C(value)
88*aed8d94eSDimitry Andric     INT16_C(value)
89*aed8d94eSDimitry Andric     INT32_C(value)
90*aed8d94eSDimitry Andric     INT64_C(value)
91*aed8d94eSDimitry Andric 
92*aed8d94eSDimitry Andric     UINT8_C(value)
93*aed8d94eSDimitry Andric     UINT16_C(value)
94*aed8d94eSDimitry Andric     UINT32_C(value)
95*aed8d94eSDimitry Andric     UINT64_C(value)
96*aed8d94eSDimitry Andric 
97*aed8d94eSDimitry Andric     INTMAX_C(value)
98*aed8d94eSDimitry Andric     UINTMAX_C(value)
99*aed8d94eSDimitry Andric 
100*aed8d94eSDimitry Andric */
101*aed8d94eSDimitry Andric 
102*aed8d94eSDimitry Andric #include <__config>
103*aed8d94eSDimitry Andric 
104*aed8d94eSDimitry Andric #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
105*aed8d94eSDimitry Andric #pragma GCC system_header
106*aed8d94eSDimitry Andric #endif
107*aed8d94eSDimitry Andric 
108*aed8d94eSDimitry Andric /* C99 stdlib (e.g. glibc < 2.18) does not provide macros needed
109*aed8d94eSDimitry Andric    for C++11 unless __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS
110*aed8d94eSDimitry Andric    are defined
111*aed8d94eSDimitry Andric */
112*aed8d94eSDimitry Andric #if defined(__cplusplus) && !defined(__STDC_LIMIT_MACROS)
113*aed8d94eSDimitry Andric #   define __STDC_LIMIT_MACROS
114*aed8d94eSDimitry Andric #endif
115*aed8d94eSDimitry Andric #if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS)
116*aed8d94eSDimitry Andric #   define __STDC_CONSTANT_MACROS
117*aed8d94eSDimitry Andric #endif
118*aed8d94eSDimitry Andric 
119*aed8d94eSDimitry Andric #include_next <stdint.h>
120*aed8d94eSDimitry Andric 
121*aed8d94eSDimitry Andric #endif  // _LIBCPP_STDINT_H
122