Split <inttypes.h> out of <cinttypes>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249741 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f82f4f3f07
commit
325c37a20f
@ -246,10 +246,7 @@ uintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int
|
|||||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||||
|
|
||||||
using::imaxdiv_t;
|
using::imaxdiv_t;
|
||||||
|
|
||||||
#undef imaxabs
|
|
||||||
using::imaxabs;
|
using::imaxabs;
|
||||||
#undef imaxdiv
|
|
||||||
using::imaxdiv;
|
using::imaxdiv;
|
||||||
using::strtoimax;
|
using::strtoimax;
|
||||||
using::strtoumax;
|
using::strtoumax;
|
||||||
|
250
include/inttypes.h
Normal file
250
include/inttypes.h
Normal file
@ -0,0 +1,250 @@
|
|||||||
|
// -*- C++ -*-
|
||||||
|
//===--------------------------- inttypes.h -------------------------------===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file is distributed under the University of Illinois Open Source
|
||||||
|
// License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#ifndef _LIBCPP_INTTYPES_H
|
||||||
|
#define _LIBCPP_INTTYPES_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
inttypes.h synopsis
|
||||||
|
|
||||||
|
This entire header is C99 / C++0X
|
||||||
|
|
||||||
|
#include <stdint.h> // <cinttypes> includes <cstdint>
|
||||||
|
|
||||||
|
Macros:
|
||||||
|
|
||||||
|
PRId8
|
||||||
|
PRId16
|
||||||
|
PRId32
|
||||||
|
PRId64
|
||||||
|
|
||||||
|
PRIdLEAST8
|
||||||
|
PRIdLEAST16
|
||||||
|
PRIdLEAST32
|
||||||
|
PRIdLEAST64
|
||||||
|
|
||||||
|
PRIdFAST8
|
||||||
|
PRIdFAST16
|
||||||
|
PRIdFAST32
|
||||||
|
PRIdFAST64
|
||||||
|
|
||||||
|
PRIdMAX
|
||||||
|
PRIdPTR
|
||||||
|
|
||||||
|
PRIi8
|
||||||
|
PRIi16
|
||||||
|
PRIi32
|
||||||
|
PRIi64
|
||||||
|
|
||||||
|
PRIiLEAST8
|
||||||
|
PRIiLEAST16
|
||||||
|
PRIiLEAST32
|
||||||
|
PRIiLEAST64
|
||||||
|
|
||||||
|
PRIiFAST8
|
||||||
|
PRIiFAST16
|
||||||
|
PRIiFAST32
|
||||||
|
PRIiFAST64
|
||||||
|
|
||||||
|
PRIiMAX
|
||||||
|
PRIiPTR
|
||||||
|
|
||||||
|
PRIo8
|
||||||
|
PRIo16
|
||||||
|
PRIo32
|
||||||
|
PRIo64
|
||||||
|
|
||||||
|
PRIoLEAST8
|
||||||
|
PRIoLEAST16
|
||||||
|
PRIoLEAST32
|
||||||
|
PRIoLEAST64
|
||||||
|
|
||||||
|
PRIoFAST8
|
||||||
|
PRIoFAST16
|
||||||
|
PRIoFAST32
|
||||||
|
PRIoFAST64
|
||||||
|
|
||||||
|
PRIoMAX
|
||||||
|
PRIoPTR
|
||||||
|
|
||||||
|
PRIu8
|
||||||
|
PRIu16
|
||||||
|
PRIu32
|
||||||
|
PRIu64
|
||||||
|
|
||||||
|
PRIuLEAST8
|
||||||
|
PRIuLEAST16
|
||||||
|
PRIuLEAST32
|
||||||
|
PRIuLEAST64
|
||||||
|
|
||||||
|
PRIuFAST8
|
||||||
|
PRIuFAST16
|
||||||
|
PRIuFAST32
|
||||||
|
PRIuFAST64
|
||||||
|
|
||||||
|
PRIuMAX
|
||||||
|
PRIuPTR
|
||||||
|
|
||||||
|
PRIx8
|
||||||
|
PRIx16
|
||||||
|
PRIx32
|
||||||
|
PRIx64
|
||||||
|
|
||||||
|
PRIxLEAST8
|
||||||
|
PRIxLEAST16
|
||||||
|
PRIxLEAST32
|
||||||
|
PRIxLEAST64
|
||||||
|
|
||||||
|
PRIxFAST8
|
||||||
|
PRIxFAST16
|
||||||
|
PRIxFAST32
|
||||||
|
PRIxFAST64
|
||||||
|
|
||||||
|
PRIxMAX
|
||||||
|
PRIxPTR
|
||||||
|
|
||||||
|
PRIX8
|
||||||
|
PRIX16
|
||||||
|
PRIX32
|
||||||
|
PRIX64
|
||||||
|
|
||||||
|
PRIXLEAST8
|
||||||
|
PRIXLEAST16
|
||||||
|
PRIXLEAST32
|
||||||
|
PRIXLEAST64
|
||||||
|
|
||||||
|
PRIXFAST8
|
||||||
|
PRIXFAST16
|
||||||
|
PRIXFAST32
|
||||||
|
PRIXFAST64
|
||||||
|
|
||||||
|
PRIXMAX
|
||||||
|
PRIXPTR
|
||||||
|
|
||||||
|
SCNd8
|
||||||
|
SCNd16
|
||||||
|
SCNd32
|
||||||
|
SCNd64
|
||||||
|
|
||||||
|
SCNdLEAST8
|
||||||
|
SCNdLEAST16
|
||||||
|
SCNdLEAST32
|
||||||
|
SCNdLEAST64
|
||||||
|
|
||||||
|
SCNdFAST8
|
||||||
|
SCNdFAST16
|
||||||
|
SCNdFAST32
|
||||||
|
SCNdFAST64
|
||||||
|
|
||||||
|
SCNdMAX
|
||||||
|
SCNdPTR
|
||||||
|
|
||||||
|
SCNi8
|
||||||
|
SCNi16
|
||||||
|
SCNi32
|
||||||
|
SCNi64
|
||||||
|
|
||||||
|
SCNiLEAST8
|
||||||
|
SCNiLEAST16
|
||||||
|
SCNiLEAST32
|
||||||
|
SCNiLEAST64
|
||||||
|
|
||||||
|
SCNiFAST8
|
||||||
|
SCNiFAST16
|
||||||
|
SCNiFAST32
|
||||||
|
SCNiFAST64
|
||||||
|
|
||||||
|
SCNiMAX
|
||||||
|
SCNiPTR
|
||||||
|
|
||||||
|
SCNo8
|
||||||
|
SCNo16
|
||||||
|
SCNo32
|
||||||
|
SCNo64
|
||||||
|
|
||||||
|
SCNoLEAST8
|
||||||
|
SCNoLEAST16
|
||||||
|
SCNoLEAST32
|
||||||
|
SCNoLEAST64
|
||||||
|
|
||||||
|
SCNoFAST8
|
||||||
|
SCNoFAST16
|
||||||
|
SCNoFAST32
|
||||||
|
SCNoFAST64
|
||||||
|
|
||||||
|
SCNoMAX
|
||||||
|
SCNoPTR
|
||||||
|
|
||||||
|
SCNu8
|
||||||
|
SCNu16
|
||||||
|
SCNu32
|
||||||
|
SCNu64
|
||||||
|
|
||||||
|
SCNuLEAST8
|
||||||
|
SCNuLEAST16
|
||||||
|
SCNuLEAST32
|
||||||
|
SCNuLEAST64
|
||||||
|
|
||||||
|
SCNuFAST8
|
||||||
|
SCNuFAST16
|
||||||
|
SCNuFAST32
|
||||||
|
SCNuFAST64
|
||||||
|
|
||||||
|
SCNuMAX
|
||||||
|
SCNuPTR
|
||||||
|
|
||||||
|
SCNx8
|
||||||
|
SCNx16
|
||||||
|
SCNx32
|
||||||
|
SCNx64
|
||||||
|
|
||||||
|
SCNxLEAST8
|
||||||
|
SCNxLEAST16
|
||||||
|
SCNxLEAST32
|
||||||
|
SCNxLEAST64
|
||||||
|
|
||||||
|
SCNxFAST8
|
||||||
|
SCNxFAST16
|
||||||
|
SCNxFAST32
|
||||||
|
SCNxFAST64
|
||||||
|
|
||||||
|
SCNxMAX
|
||||||
|
SCNxPTR
|
||||||
|
|
||||||
|
Types:
|
||||||
|
|
||||||
|
imaxdiv_t
|
||||||
|
|
||||||
|
intmax_t imaxabs(intmax_t j);
|
||||||
|
imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);
|
||||||
|
intmax_t strtoimax(const char* restrict nptr, char** restrict endptr, int base);
|
||||||
|
uintmax_t strtoumax(const char* restrict nptr, char** restrict endptr, int base);
|
||||||
|
intmax_t wcstoimax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);
|
||||||
|
uintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <__config>
|
||||||
|
#include_next <inttypes.h>
|
||||||
|
|
||||||
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#undef imaxabs
|
||||||
|
#undef imaxdiv
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // _LIBCPP_INTTYPES_H
|
@ -12,6 +12,250 @@
|
|||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|
||||||
|
#ifndef INT8_MIN
|
||||||
|
#error INT8_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT16_MIN
|
||||||
|
#error INT16_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT32_MIN
|
||||||
|
#error INT32_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT64_MIN
|
||||||
|
#error INT64_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT8_MAX
|
||||||
|
#error INT8_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT16_MAX
|
||||||
|
#error INT16_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT32_MAX
|
||||||
|
#error INT32_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT64_MAX
|
||||||
|
#error INT64_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT8_MAX
|
||||||
|
#error UINT8_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT16_MAX
|
||||||
|
#error UINT16_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT32_MAX
|
||||||
|
#error UINT32_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT64_MAX
|
||||||
|
#error UINT64_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_LEAST8_MIN
|
||||||
|
#error INT_LEAST8_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_LEAST16_MIN
|
||||||
|
#error INT_LEAST16_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_LEAST32_MIN
|
||||||
|
#error INT_LEAST32_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_LEAST64_MIN
|
||||||
|
#error INT_LEAST64_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_LEAST8_MAX
|
||||||
|
#error INT_LEAST8_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_LEAST16_MAX
|
||||||
|
#error INT_LEAST16_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_LEAST32_MAX
|
||||||
|
#error INT_LEAST32_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_LEAST64_MAX
|
||||||
|
#error INT_LEAST64_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT_LEAST8_MAX
|
||||||
|
#error UINT_LEAST8_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT_LEAST16_MAX
|
||||||
|
#error UINT_LEAST16_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT_LEAST32_MAX
|
||||||
|
#error UINT_LEAST32_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT_LEAST64_MAX
|
||||||
|
#error UINT_LEAST64_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_FAST8_MIN
|
||||||
|
#error INT_FAST8_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_FAST16_MIN
|
||||||
|
#error INT_FAST16_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_FAST32_MIN
|
||||||
|
#error INT_FAST32_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_FAST64_MIN
|
||||||
|
#error INT_FAST64_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_FAST8_MAX
|
||||||
|
#error INT_FAST8_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_FAST16_MAX
|
||||||
|
#error INT_FAST16_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_FAST32_MAX
|
||||||
|
#error INT_FAST32_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT_FAST64_MAX
|
||||||
|
#error INT_FAST64_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT_FAST8_MAX
|
||||||
|
#error UINT_FAST8_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT_FAST16_MAX
|
||||||
|
#error UINT_FAST16_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT_FAST32_MAX
|
||||||
|
#error UINT_FAST32_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT_FAST64_MAX
|
||||||
|
#error UINT_FAST64_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INTPTR_MIN
|
||||||
|
#error INTPTR_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INTPTR_MAX
|
||||||
|
#error INTPTR_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINTPTR_MAX
|
||||||
|
#error UINTPTR_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INTMAX_MIN
|
||||||
|
#error INTMAX_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INTMAX_MAX
|
||||||
|
#error INTMAX_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINTMAX_MAX
|
||||||
|
#error UINTMAX_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PTRDIFF_MIN
|
||||||
|
#error PTRDIFF_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PTRDIFF_MAX
|
||||||
|
#error PTRDIFF_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SIG_ATOMIC_MIN
|
||||||
|
#error SIG_ATOMIC_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SIG_ATOMIC_MAX
|
||||||
|
#error SIG_ATOMIC_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SIZE_MAX
|
||||||
|
#error SIZE_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WCHAR_MIN
|
||||||
|
#error WCHAR_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WCHAR_MAX
|
||||||
|
#error WCHAR_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WINT_MIN
|
||||||
|
#error WINT_MIN not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WINT_MAX
|
||||||
|
#error WINT_MAX not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT8_C
|
||||||
|
#error INT8_C not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT16_C
|
||||||
|
#error INT16_C not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT32_C
|
||||||
|
#error INT32_C not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT64_C
|
||||||
|
#error INT64_C not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT8_C
|
||||||
|
#error UINT8_C not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT16_C
|
||||||
|
#error UINT16_C not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT32_C
|
||||||
|
#error UINT32_C not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT64_C
|
||||||
|
#error UINT64_C not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INTMAX_C
|
||||||
|
#error INTMAX_C not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINTMAX_C
|
||||||
|
#error UINTMAX_C not defined
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef PRId8
|
#ifndef PRId8
|
||||||
#error PRId8 not defined
|
#error PRId8 not defined
|
||||||
#endif
|
#endif
|
||||||
@ -631,8 +875,49 @@
|
|||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
imaxdiv_t i1 = {0};
|
int8_t i1 = 0;
|
||||||
((void)i1);
|
int16_t i2 = 0;
|
||||||
|
int32_t i3 = 0;
|
||||||
|
int64_t i4 = 0;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
uint8_t i1 = 0;
|
||||||
|
uint16_t i2 = 0;
|
||||||
|
uint32_t i3 = 0;
|
||||||
|
uint64_t i4 = 0;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
int_least8_t i1 = 0;
|
||||||
|
int_least16_t i2 = 0;
|
||||||
|
int_least32_t i3 = 0;
|
||||||
|
int_least64_t i4 = 0;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
uint_least8_t i1 = 0;
|
||||||
|
uint_least16_t i2 = 0;
|
||||||
|
uint_least32_t i3 = 0;
|
||||||
|
uint_least64_t i4 = 0;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
int_fast8_t i1 = 0;
|
||||||
|
int_fast16_t i2 = 0;
|
||||||
|
int_fast32_t i3 = 0;
|
||||||
|
int_fast64_t i4 = 0;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
uint_fast8_t i1 = 0;
|
||||||
|
uint_fast16_t i2 = 0;
|
||||||
|
uint_fast32_t i3 = 0;
|
||||||
|
uint_fast64_t i4 = 0;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
intptr_t i1 = 0;
|
||||||
|
uintptr_t i2 = 0;
|
||||||
|
intmax_t i3 = 0;
|
||||||
|
uintmax_t i4 = 0;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
imaxdiv_t i1 = {0};
|
||||||
}
|
}
|
||||||
intmax_t i = 0;
|
intmax_t i = 0;
|
||||||
static_assert((std::is_same<decltype(imaxabs(i)), intmax_t>::value), "");
|
static_assert((std::is_same<decltype(imaxabs(i)), intmax_t>::value), "");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user