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