forked from OSchip/llvm-project
parent
33700e640c
commit
37df7a05c2
|
@ -246,10 +246,7 @@ uintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int
|
|||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
using::imaxdiv_t;
|
||||
|
||||
#undef imaxabs
|
||||
using::imaxabs;
|
||||
#undef imaxdiv
|
||||
using::imaxdiv;
|
||||
using::strtoimax;
|
||||
using::strtoumax;
|
||||
|
|
|
@ -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 <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
|
||||
#error PRId8 not defined
|
||||
#endif
|
||||
|
@ -631,8 +875,49 @@
|
|||
int main()
|
||||
{
|
||||
{
|
||||
imaxdiv_t i1 = {0};
|
||||
((void)i1);
|
||||
int8_t i1 = 0;
|
||||
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;
|
||||
static_assert((std::is_same<decltype(imaxabs(i)), intmax_t>::value), "");
|
||||
|
|
Loading…
Reference in New Issue