2016-09-26 20:20:00 +00:00
|
|
|
// -*- C++ -*-
|
2021-11-17 21:25:01 +00:00
|
|
|
//===----------------------------------------------------------------------===//
|
2016-09-26 20:20:00 +00:00
|
|
|
//
|
2019-01-19 08:50:56 +00:00
|
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
2016-09-26 20:20:00 +00:00
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
|
|
|
#ifndef _LIBCPP_STDINT_H
|
AIX system headers need stdint.h and inttypes.h to be re-enterable
Summary:
AIX system headers need stdint.h and inttypes.h to be re-enterable when macro _STD_TYPES_T is defined so that limit macro definitions such as UINT32_MAX can be found. This patch attempts to allow that on AIX.
Reviewers: hubert.reinterpretcast, jasonliu, mclow.lists, EricWF
Reviewed by: hubert.reinterpretcast, mclow.lists
Subscribers: jfb, jsji, christof, cfe-commits, libcxx-commits, llvm-commits
Tags: #LLVM, #clang, #libc++
Differential Revision: https://reviews.llvm.org/D59253
llvm-svn: 363939
2019-06-20 15:36:32 +00:00
|
|
|
// AIX system headers need stdint.h to be re-enterable while _STD_TYPES_T
|
|
|
|
// is defined until an inclusion of it without _STD_TYPES_T occurs, in which
|
|
|
|
// case the header guard macro is defined.
|
|
|
|
#if !defined(_AIX) || !defined(_STD_TYPES_T)
|
2016-09-26 20:20:00 +00:00
|
|
|
# define _LIBCPP_STDINT_H
|
AIX system headers need stdint.h and inttypes.h to be re-enterable
Summary:
AIX system headers need stdint.h and inttypes.h to be re-enterable when macro _STD_TYPES_T is defined so that limit macro definitions such as UINT32_MAX can be found. This patch attempts to allow that on AIX.
Reviewers: hubert.reinterpretcast, jasonliu, mclow.lists, EricWF
Reviewed by: hubert.reinterpretcast, mclow.lists
Subscribers: jfb, jsji, christof, cfe-commits, libcxx-commits, llvm-commits
Tags: #LLVM, #clang, #libc++
Differential Revision: https://reviews.llvm.org/D59253
llvm-svn: 363939
2019-06-20 15:36:32 +00:00
|
|
|
#endif // _STD_TYPES_T
|
2016-09-26 20:20:00 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
stdint.h synopsis
|
|
|
|
|
|
|
|
Macros:
|
|
|
|
|
|
|
|
INT8_MIN
|
|
|
|
INT16_MIN
|
|
|
|
INT32_MIN
|
|
|
|
INT64_MIN
|
|
|
|
|
|
|
|
INT8_MAX
|
|
|
|
INT16_MAX
|
|
|
|
INT32_MAX
|
|
|
|
INT64_MAX
|
|
|
|
|
|
|
|
UINT8_MAX
|
|
|
|
UINT16_MAX
|
|
|
|
UINT32_MAX
|
|
|
|
UINT64_MAX
|
|
|
|
|
|
|
|
INT_LEAST8_MIN
|
|
|
|
INT_LEAST16_MIN
|
|
|
|
INT_LEAST32_MIN
|
|
|
|
INT_LEAST64_MIN
|
|
|
|
|
|
|
|
INT_LEAST8_MAX
|
|
|
|
INT_LEAST16_MAX
|
|
|
|
INT_LEAST32_MAX
|
|
|
|
INT_LEAST64_MAX
|
|
|
|
|
|
|
|
UINT_LEAST8_MAX
|
|
|
|
UINT_LEAST16_MAX
|
|
|
|
UINT_LEAST32_MAX
|
|
|
|
UINT_LEAST64_MAX
|
|
|
|
|
|
|
|
INT_FAST8_MIN
|
|
|
|
INT_FAST16_MIN
|
|
|
|
INT_FAST32_MIN
|
|
|
|
INT_FAST64_MIN
|
|
|
|
|
|
|
|
INT_FAST8_MAX
|
|
|
|
INT_FAST16_MAX
|
|
|
|
INT_FAST32_MAX
|
|
|
|
INT_FAST64_MAX
|
|
|
|
|
|
|
|
UINT_FAST8_MAX
|
|
|
|
UINT_FAST16_MAX
|
|
|
|
UINT_FAST32_MAX
|
|
|
|
UINT_FAST64_MAX
|
|
|
|
|
|
|
|
INTPTR_MIN
|
|
|
|
INTPTR_MAX
|
|
|
|
UINTPTR_MAX
|
|
|
|
|
|
|
|
INTMAX_MIN
|
|
|
|
INTMAX_MAX
|
|
|
|
|
|
|
|
UINTMAX_MAX
|
|
|
|
|
|
|
|
PTRDIFF_MIN
|
|
|
|
PTRDIFF_MAX
|
|
|
|
|
|
|
|
SIG_ATOMIC_MIN
|
|
|
|
SIG_ATOMIC_MAX
|
|
|
|
|
|
|
|
SIZE_MAX
|
|
|
|
|
|
|
|
WCHAR_MIN
|
|
|
|
WCHAR_MAX
|
|
|
|
|
|
|
|
WINT_MIN
|
|
|
|
WINT_MAX
|
|
|
|
|
|
|
|
INT8_C(value)
|
|
|
|
INT16_C(value)
|
|
|
|
INT32_C(value)
|
|
|
|
INT64_C(value)
|
|
|
|
|
|
|
|
UINT8_C(value)
|
|
|
|
UINT16_C(value)
|
|
|
|
UINT32_C(value)
|
|
|
|
UINT64_C(value)
|
|
|
|
|
|
|
|
INTMAX_C(value)
|
|
|
|
UINTMAX_C(value)
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <__config>
|
|
|
|
|
|
|
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
2022-02-02 01:16:40 +00:00
|
|
|
# pragma GCC system_header
|
2016-09-26 20:20:00 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
/* C99 stdlib (e.g. glibc < 2.18) does not provide macros needed
|
|
|
|
for C++11 unless __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS
|
|
|
|
are defined
|
|
|
|
*/
|
|
|
|
#if defined(__cplusplus) && !defined(__STDC_LIMIT_MACROS)
|
|
|
|
# define __STDC_LIMIT_MACROS
|
|
|
|
#endif
|
|
|
|
#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS)
|
|
|
|
# define __STDC_CONSTANT_MACROS
|
|
|
|
#endif
|
|
|
|
|
2022-11-15 22:08:01 +00:00
|
|
|
#if __has_include_next(<stdint.h>)
|
|
|
|
# include_next <stdint.h>
|
|
|
|
#endif
|
2016-09-26 20:20:00 +00:00
|
|
|
|
2021-04-20 16:03:32 +00:00
|
|
|
#endif // _LIBCPP_STDINT_H
|