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