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