16bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/*===---- stdint.h - Standard header for sized integer types --------------===*\ 26bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 36bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * Copyright (c) 2009 Chris Lattner 46bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 56bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * Permission is hereby granted, free of charge, to any person obtaining a copy 66bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * of this software and associated documentation files (the "Software"), to deal 76bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * in the Software without restriction, including without limitation the rights 86bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 96bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * copies of the Software, and to permit persons to whom the Software is 106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * furnished to do so, subject to the following conditions: 116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * The above copyright notice and this permission notice shall be included in 136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * all copies or substantial portions of the Software. 146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * THE SOFTWARE. 226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker\*===----------------------------------------------------------------------===*/ 246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifndef __CLANG_STDINT_H 266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __CLANG_STDINT_H 276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* If we're hosted, fall back to the system's stdint.h, which might have 296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * additional definitions. 306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker */ 316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#if __STDC_HOSTED__ && __has_include_next(<stdint.h>) 326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// C99 7.18.3 Limits of other integer types 346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// 356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// Footnote 219, 220: C++ implementations should define these macros only when 366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// __STDC_LIMIT_MACROS is defined before <stdint.h> is included. 376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// 386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// Footnote 222: C++ implementations should define these macros only when 396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// __STDC_CONSTANT_MACROS is defined before <stdint.h> is included. 406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// 416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// C++11 [cstdint.syn]p2: 426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// 436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// The macros defined by <cstdint> are provided unconditionally. In particular, 446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// the symbols __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS (mentioned in 456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// footnotes 219, 220, and 222 in the C standard) play no role in C++. 466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// 476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// C11 removed the problematic footnotes. 486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// 496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// Work around this inconsistency by always defining those macros in C++ mode, 506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// so that a C library implementation which follows the C99 standard can be 516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker// used in C++. 526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __cplusplus 536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# if !defined(__STDC_LIMIT_MACROS) 546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __STDC_LIMIT_MACROS 556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __STDC_LIMIT_MACROS_DEFINED_BY_CLANG 566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif 576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# if !defined(__STDC_CONSTANT_MACROS) 586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __STDC_CONSTANT_MACROS 596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG 606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif 616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif 626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# include_next <stdint.h> 646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __STDC_LIMIT_MACROS_DEFINED_BY_CLANG 666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __STDC_LIMIT_MACROS 676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __STDC_LIMIT_MACROS_DEFINED_BY_CLANG 686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif 696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG 706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __STDC_CONSTANT_MACROS 716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG 726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif 736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#else 756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* C99 7.18.1.1 Exact-width integer types. 776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * C99 7.18.1.2 Minimum-width integer types. 786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * C99 7.18.1.3 Fastest minimum-width integer types. 796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * The standard requires that exact-width type be defined for 8-, 16-, 32-, and 816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 64-bit types if they are implemented. Other exact width types are optional. 826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * This implementation defines an exact-width types for every integer width 836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * that is represented in the standard integer types. 846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * The standard also requires minimum-width types be defined for 8-, 16-, 32-, 866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * and 64-bit widths regardless of whether there are corresponding exact-width 876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * types. 886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * To accommodate targets that are missing types that are exactly 8, 16, 32, or 906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 64 bits wide, this implementation takes an approach of cascading 916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * redefintions, redefining __int_leastN_t to successively smaller exact-width 926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * types. It is therefore important that the types are defined in order of 936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * descending widths. 946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * We currently assume that the minimum-width types and the fastest 966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * minimum-width types are the same. This is allowed by the standard, but is 976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * suboptimal. 986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * In violation of the standard, some targets do not implement a type that is 1006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * wide enough to represent all of the required widths (8-, 16-, 32-, 64-bit). 1016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * To accommodate these targets, a required minimum-width type is only 1026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * defined if there exists an exact-width type of equal or greater width. 1036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker */ 1046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT64_TYPE__ 1066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifndef __int8_t_defined /* glibc sys/types.h also defines int64_t*/ 1076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __INT64_TYPE__ int64_t; 1086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __int8_t_defined */ 1096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __UINT64_TYPE__ uint64_t; 1106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least64_t int64_t 1116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least64_t uint64_t 1126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least32_t int64_t 1136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least32_t uint64_t 1146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least16_t int64_t 1156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least16_t uint64_t 1166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least8_t int64_t 1176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least8_t uint64_t 1186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT64_TYPE__ */ 1196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __int_least64_t 1216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __int_least64_t int_least64_t; 1226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __uint_least64_t uint_least64_t; 1236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __int_least64_t int_fast64_t; 1246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __uint_least64_t uint_fast64_t; 1256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __int_least64_t */ 1266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT56_TYPE__ 1286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __INT56_TYPE__ int56_t; 1296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __UINT56_TYPE__ uint56_t; 1306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef int56_t int_least56_t; 1316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef uint56_t uint_least56_t; 1326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef int56_t int_fast56_t; 1336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef uint56_t uint_fast56_t; 1346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least32_t int56_t 1356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least32_t uint56_t 1366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least16_t int56_t 1376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least16_t uint56_t 1386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least8_t int56_t 1396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least8_t uint56_t 1406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT56_TYPE__ */ 1416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT48_TYPE__ 1446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __INT48_TYPE__ int48_t; 1456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __UINT48_TYPE__ uint48_t; 1466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef int48_t int_least48_t; 1476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef uint48_t uint_least48_t; 1486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef int48_t int_fast48_t; 1496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef uint48_t uint_fast48_t; 1506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least32_t int48_t 1516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least32_t uint48_t 1526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least16_t int48_t 1536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least16_t uint48_t 1546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least8_t int48_t 1556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least8_t uint48_t 1566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT48_TYPE__ */ 1576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT40_TYPE__ 1606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __INT40_TYPE__ int40_t; 1616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __UINT40_TYPE__ uint40_t; 1626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef int40_t int_least40_t; 1636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef uint40_t uint_least40_t; 1646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef int40_t int_fast40_t; 1656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef uint40_t uint_fast40_t; 1666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least32_t int40_t 1676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least32_t uint40_t 1686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least16_t int40_t 1696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least16_t uint40_t 1706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least8_t int40_t 1716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least8_t uint40_t 1726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT40_TYPE__ */ 1736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT32_TYPE__ 1766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifndef __int8_t_defined /* glibc sys/types.h also defines int32_t*/ 1786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __INT32_TYPE__ int32_t; 1796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __int8_t_defined */ 1806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifndef __uint32_t_defined /* more glibc compatibility */ 1826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint32_t_defined 1836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __UINT32_TYPE__ uint32_t; 1846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __uint32_t_defined */ 1856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least32_t int32_t 1876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least32_t uint32_t 1886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least16_t int32_t 1896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least16_t uint32_t 1906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least8_t int32_t 1916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least8_t uint32_t 1926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT32_TYPE__ */ 1936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 1946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __int_least32_t 1956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __int_least32_t int_least32_t; 1966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __uint_least32_t uint_least32_t; 1976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __int_least32_t int_fast32_t; 1986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __uint_least32_t uint_fast32_t; 1996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __int_least32_t */ 2006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT24_TYPE__ 2026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __INT24_TYPE__ int24_t; 2036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __UINT24_TYPE__ uint24_t; 2046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef int24_t int_least24_t; 2056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef uint24_t uint_least24_t; 2066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef int24_t int_fast24_t; 2076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef uint24_t uint_fast24_t; 2086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least16_t int24_t 2096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least16_t uint24_t 2106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least8_t int24_t 2116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least8_t uint24_t 2126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT24_TYPE__ */ 2136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT16_TYPE__ 2156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifndef __int8_t_defined /* glibc sys/types.h also defines int16_t*/ 2166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __INT16_TYPE__ int16_t; 2176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __int8_t_defined */ 2186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __UINT16_TYPE__ uint16_t; 2196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least16_t int16_t 2206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least16_t uint16_t 2216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least8_t int16_t 2226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least8_t uint16_t 2236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT16_TYPE__ */ 2246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __int_least16_t 2266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __int_least16_t int_least16_t; 2276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __uint_least16_t uint_least16_t; 2286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __int_least16_t int_fast16_t; 2296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __uint_least16_t uint_fast16_t; 2306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __int_least16_t */ 2316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT8_TYPE__ 2346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifndef __int8_t_defined /* glibc sys/types.h also defines int8_t*/ 2356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __INT8_TYPE__ int8_t; 2366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __int8_t_defined */ 2376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __UINT8_TYPE__ uint8_t; 2386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int_least8_t int8_t 2396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __uint_least8_t uint8_t 2406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT8_TYPE__ */ 2416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __int_least8_t 2436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __int_least8_t int_least8_t; 2446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __uint_least8_t uint_least8_t; 2456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __int_least8_t int_fast8_t; 2466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __uint_least8_t uint_fast8_t; 2476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __int_least8_t */ 2486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* prevent glibc sys/types.h from defining conflicting types */ 2506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifndef __int8_t_defined 2516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int8_t_defined 2526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __int8_t_defined */ 2536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* C99 7.18.1.4 Integer types capable of holding object pointers. 2556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker */ 2566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __stdint_join3(a,b,c) a ## b ## c 2576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __intn_t(n) __stdint_join3( int, n, _t) 2596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __uintn_t(n) __stdint_join3(uint, n, _t) 2606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifndef _INTPTR_T 2626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifndef __intptr_t_defined 2636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __intn_t(__INTPTR_WIDTH__) intptr_t; 2646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __intptr_t_defined 2656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _INTPTR_T 2666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif 2676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif 2686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifndef _UINTPTR_T 2706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __uintn_t(__INTPTR_WIDTH__) uintptr_t; 2716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define _UINTPTR_T 2726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif 2736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* C99 7.18.1.5 Greatest-width integer types. 2756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker */ 2766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __INTMAX_TYPE__ intmax_t; 2776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkickertypedef __UINTMAX_TYPE__ uintmax_t; 2786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* C99 7.18.4 Macros for minimum-width integer constants. 2806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 2816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * The standard requires that integer constant macros be defined for all the 2826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width 2836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * types are required, the corresponding integer constant macros are defined 2846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * here. This implementation also defines minimum-width types for every other 2856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * integer width that the target implements, so corresponding macros are 2866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * defined below, too. 2876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 2886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * These macros are defined using the same successive-shrinking approach as 2896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * the type definitions above. It is likewise important that macros are defined 2906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * in order of decending width. 2916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 2926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the 2936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). 2946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker */ 2956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 2966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __int_c_join(a, b) a ## b 2976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __int_c(v, suffix) __int_c_join(v, suffix) 2986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __uint_c(v, suffix) __int_c_join(v##U, suffix) 2996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT64_TYPE__ 3026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __INT64_C_SUFFIX__ 3036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int64_c_suffix __INT64_C_SUFFIX__ 3046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int32_c_suffix __INT64_C_SUFFIX__ 3056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int16_c_suffix __INT64_C_SUFFIX__ 3066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int8_c_suffix __INT64_C_SUFFIX__ 3076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# else 3086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int64_c_suffix 3096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int32_c_suffix 3106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int16_c_suffix 3116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int8_c_suffix 3126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __INT64_C_SUFFIX__ */ 3136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT64_TYPE__ */ 3146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __int_least64_t 3166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __int64_c_suffix 3176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT64_C(v) __int_c(v, __int64_c_suffix) 3186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT64_C(v) __uint_c(v, __int64_c_suffix) 3196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# else 3206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT64_C(v) v 3216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT64_C(v) v ## U 3226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __int64_c_suffix */ 3236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __int_least64_t */ 3246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT56_TYPE__ 3276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __INT56_C_SUFFIX__ 3286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT56_C(v) __int_c(v, __INT56_C_SUFFIX__) 3296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT56_C(v) __uint_c(v, __INT56_C_SUFFIX__) 3306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int32_c_suffix __INT56_C_SUFFIX__ 3316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int16_c_suffix __INT56_C_SUFFIX__ 3326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int8_c_suffix __INT56_C_SUFFIX__ 3336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# else 3346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT56_C(v) v 3356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT56_C(v) v ## U 3366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int32_c_suffix 3376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int16_c_suffix 3386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int8_c_suffix 3396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __INT56_C_SUFFIX__ */ 3406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT56_TYPE__ */ 3416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT48_TYPE__ 3446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __INT48_C_SUFFIX__ 3456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT48_C(v) __int_c(v, __INT48_C_SUFFIX__) 3466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT48_C(v) __uint_c(v, __INT48_C_SUFFIX__) 3476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int32_c_suffix __INT48_C_SUFFIX__ 3486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int16_c_suffix __INT48_C_SUFFIX__ 3496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int8_c_suffix __INT48_C_SUFFIX__ 3506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# else 3516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT48_C(v) v 3526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT48_C(v) v ## U 3536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int32_c_suffix 3546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int16_c_suffix 3556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int8_c_suffix 3566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __INT48_C_SUFFIX__ */ 3576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT48_TYPE__ */ 3586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT40_TYPE__ 3616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __INT40_C_SUFFIX__ 3626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT40_C(v) __int_c(v, __INT40_C_SUFFIX__) 3636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT40_C(v) __uint_c(v, __INT40_C_SUFFIX__) 3646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int32_c_suffix __INT40_C_SUFFIX__ 3656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int16_c_suffix __INT40_C_SUFFIX__ 3666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int8_c_suffix __INT40_C_SUFFIX__ 3676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# else 3686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT40_C(v) v 3696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT40_C(v) v ## U 3706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int32_c_suffix 3716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int16_c_suffix 3726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int8_c_suffix 3736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __INT40_C_SUFFIX__ */ 3746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT40_TYPE__ */ 3756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT32_TYPE__ 3786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __INT32_C_SUFFIX__ 3796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int32_c_suffix __INT32_C_SUFFIX__ 3806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int16_c_suffix __INT32_C_SUFFIX__ 3816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int8_c_suffix __INT32_C_SUFFIX__ 3826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#else 3836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int32_c_suffix 3846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int16_c_suffix 3856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int8_c_suffix 3866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __INT32_C_SUFFIX__ */ 3876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT32_TYPE__ */ 3886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __int_least32_t 3906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __int32_c_suffix 3916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT32_C(v) __int_c(v, __int32_c_suffix) 3926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT32_C(v) __uint_c(v, __int32_c_suffix) 3936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# else 3946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT32_C(v) v 3956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT32_C(v) v ## U 3966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __int32_c_suffix */ 3976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __int_least32_t */ 3986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 3996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 4006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT24_TYPE__ 4016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __INT24_C_SUFFIX__ 4026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT24_C(v) __int_c(v, __INT24_C_SUFFIX__) 4036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT24_C(v) __uint_c(v, __INT24_C_SUFFIX__) 4046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int16_c_suffix __INT24_C_SUFFIX__ 4056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int8_c_suffix __INT24_C_SUFFIX__ 4066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# else 4076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT24_C(v) v 4086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT24_C(v) v ## U 4096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int16_c_suffix 4106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int8_c_suffix 4116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __INT24_C_SUFFIX__ */ 4126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT24_TYPE__ */ 4136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 4146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 4156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT16_TYPE__ 4166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __INT16_C_SUFFIX__ 4176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int16_c_suffix __INT16_C_SUFFIX__ 4186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int8_c_suffix __INT16_C_SUFFIX__ 4196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#else 4206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int16_c_suffix 4216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int8_c_suffix 4226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __INT16_C_SUFFIX__ */ 4236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT16_TYPE__ */ 4246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 4256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __int_least16_t 4266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __int16_c_suffix 4276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT16_C(v) __int_c(v, __int16_c_suffix) 4286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT16_C(v) __uint_c(v, __int16_c_suffix) 4296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# else 4306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT16_C(v) v 4316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT16_C(v) v ## U 4326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __int16_c_suffix */ 4336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __int_least16_t */ 4346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 4356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 4366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT8_TYPE__ 4376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __INT8_C_SUFFIX__ 4386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __int8_c_suffix __INT8_C_SUFFIX__ 4396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#else 4406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# undef __int8_c_suffix 4416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __INT8_C_SUFFIX__ */ 4426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT8_TYPE__ */ 4436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 4446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __int_least8_t 4456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# ifdef __int8_c_suffix 4466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT8_C(v) __int_c(v, __int8_c_suffix) 4476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT8_C(v) __uint_c(v, __int8_c_suffix) 4486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# else 4496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT8_C(v) v 4506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT8_C(v) v ## U 4516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif /* __int8_c_suffix */ 4526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __int_least8_t */ 4536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 4546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 4556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* C99 7.18.2.1 Limits of exact-width integer types. 4566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * C99 7.18.2.2 Limits of minimum-width integer types. 4576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * C99 7.18.2.3 Limits of fastest minimum-width integer types. 4586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 4596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * The presence of limit macros are completely optional in C99. This 4606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * implementation defines limits for all of the types (exact- and 4616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * minimum-width) that it defines above, using the limits of the minimum-width 4626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * type for any types that do not have exact-width representations. 4636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 4646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * As in the type definitions, this section takes an approach of 4656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * successive-shrinking to determine which limits to use for the standard (8, 4666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 16, 32, 64) bit widths when they don't have exact representations. It is 4676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * therefore important that the defintions be kept in order of decending 4686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * widths. 4696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * 4706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the 4716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). 4726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker */ 4736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 4746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT64_TYPE__ 4756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT64_MAX INT64_C( 9223372036854775807) 4766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT64_MIN (-INT64_C( 9223372036854775807)-1) 4776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT64_MAX UINT64_C(18446744073709551615) 4786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST64_MIN INT64_MIN 4796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST64_MAX INT64_MAX 4806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST64_MAX UINT64_MAX 4816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST32_MIN INT64_MIN 4826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST32_MAX INT64_MAX 4836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST32_MAX UINT64_MAX 4846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MIN INT64_MIN 4856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MAX INT64_MAX 4866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST16_MAX UINT64_MAX 4876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MIN INT64_MIN 4886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MAX INT64_MAX 4896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST8_MAX UINT64_MAX 4906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT64_TYPE__ */ 4916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 4926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT_LEAST64_MIN 4936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST64_MIN __INT_LEAST64_MIN 4946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST64_MAX __INT_LEAST64_MAX 4956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_LEAST64_MAX __UINT_LEAST64_MAX 4966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST64_MIN __INT_LEAST64_MIN 4976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST64_MAX __INT_LEAST64_MAX 4986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_FAST64_MAX __UINT_LEAST64_MAX 4996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT_LEAST64_MIN */ 5006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 5016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 5026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT56_TYPE__ 5036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT56_MAX INT56_C(36028797018963967) 5046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT56_MIN (-INT56_C(36028797018963967)-1) 5056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT56_MAX UINT56_C(72057594037927935) 5066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST56_MIN INT56_MIN 5076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST56_MAX INT56_MAX 5086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_LEAST56_MAX UINT56_MAX 5096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST56_MIN INT56_MIN 5106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST56_MAX INT56_MAX 5116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_FAST56_MAX UINT56_MAX 5126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST32_MIN INT56_MIN 5136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST32_MAX INT56_MAX 5146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST32_MAX UINT56_MAX 5156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MIN INT56_MIN 5166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MAX INT56_MAX 5176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST16_MAX UINT56_MAX 5186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MIN INT56_MIN 5196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MAX INT56_MAX 5206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST8_MAX UINT56_MAX 5216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT56_TYPE__ */ 5226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 5236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 5246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT48_TYPE__ 5256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT48_MAX INT48_C(140737488355327) 5266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT48_MIN (-INT48_C(140737488355327)-1) 5276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT48_MAX UINT48_C(281474976710655) 5286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST48_MIN INT48_MIN 5296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST48_MAX INT48_MAX 5306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_LEAST48_MAX UINT48_MAX 5316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST48_MIN INT48_MIN 5326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST48_MAX INT48_MAX 5336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_FAST48_MAX UINT48_MAX 5346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST32_MIN INT48_MIN 5356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST32_MAX INT48_MAX 5366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST32_MAX UINT48_MAX 5376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MIN INT48_MIN 5386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MAX INT48_MAX 5396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST16_MAX UINT48_MAX 5406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MIN INT48_MIN 5416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MAX INT48_MAX 5426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST8_MAX UINT48_MAX 5436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT48_TYPE__ */ 5446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 5456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 5466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT40_TYPE__ 5476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT40_MAX INT40_C(549755813887) 5486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT40_MIN (-INT40_C(549755813887)-1) 5496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT40_MAX UINT40_C(1099511627775) 5506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST40_MIN INT40_MIN 5516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST40_MAX INT40_MAX 5526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_LEAST40_MAX UINT40_MAX 5536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST40_MIN INT40_MIN 5546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST40_MAX INT40_MAX 5556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_FAST40_MAX UINT40_MAX 5566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST32_MIN INT40_MIN 5576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST32_MAX INT40_MAX 5586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST32_MAX UINT40_MAX 5596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MIN INT40_MIN 5606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MAX INT40_MAX 5616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST16_MAX UINT40_MAX 5626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MIN INT40_MIN 5636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MAX INT40_MAX 5646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST8_MAX UINT40_MAX 5656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT40_TYPE__ */ 5666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 5676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 5686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT32_TYPE__ 5696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT32_MAX INT32_C(2147483647) 5706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT32_MIN (-INT32_C(2147483647)-1) 5716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT32_MAX UINT32_C(4294967295) 5726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST32_MIN INT32_MIN 5736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST32_MAX INT32_MAX 5746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST32_MAX UINT32_MAX 5756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MIN INT32_MIN 5766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MAX INT32_MAX 5776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST16_MAX UINT32_MAX 5786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MIN INT32_MIN 5796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MAX INT32_MAX 5806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST8_MAX UINT32_MAX 5816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT32_TYPE__ */ 5826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 5836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT_LEAST32_MIN 5846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST32_MIN __INT_LEAST32_MIN 5856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST32_MAX __INT_LEAST32_MAX 5866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_LEAST32_MAX __UINT_LEAST32_MAX 5876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST32_MIN __INT_LEAST32_MIN 5886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST32_MAX __INT_LEAST32_MAX 5896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_FAST32_MAX __UINT_LEAST32_MAX 5906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT_LEAST32_MIN */ 5916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 5926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 5936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT24_TYPE__ 5946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT24_MAX INT24_C(8388607) 5956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT24_MIN (-INT24_C(8388607)-1) 5966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT24_MAX UINT24_C(16777215) 5976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST24_MIN INT24_MIN 5986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST24_MAX INT24_MAX 5996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_LEAST24_MAX UINT24_MAX 6006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST24_MIN INT24_MIN 6016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST24_MAX INT24_MAX 6026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_FAST24_MAX UINT24_MAX 6036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MIN INT24_MIN 6046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MAX INT24_MAX 6056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST16_MAX UINT24_MAX 6066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MIN INT24_MIN 6076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MAX INT24_MAX 6086bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST8_MAX UINT24_MAX 6096bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT24_TYPE__ */ 6106bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6116bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6126bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT16_TYPE__ 6136bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define INT16_MAX INT16_C(32767) 6146bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define INT16_MIN (-INT16_C(32767)-1) 6156bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define UINT16_MAX UINT16_C(65535) 6166bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MIN INT16_MIN 6176bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST16_MAX INT16_MAX 6186bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST16_MAX UINT16_MAX 6196bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MIN INT16_MIN 6206bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MAX INT16_MAX 6216bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST8_MAX UINT16_MAX 6226bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT16_TYPE__ */ 6236bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6246bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT_LEAST16_MIN 6256bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST16_MIN __INT_LEAST16_MIN 6266bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST16_MAX __INT_LEAST16_MAX 6276bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_LEAST16_MAX __UINT_LEAST16_MAX 6286bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST16_MIN __INT_LEAST16_MIN 6296bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST16_MAX __INT_LEAST16_MAX 6306bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_FAST16_MAX __UINT_LEAST16_MAX 6316bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT_LEAST16_MIN */ 6326bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6336bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6346bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT8_TYPE__ 6356bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT8_MAX INT8_C(127) 6366bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT8_MIN (-INT8_C(127)-1) 6376bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT8_MAX UINT8_C(255) 6386bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MIN INT8_MIN 6396bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __INT_LEAST8_MAX INT8_MAX 6406bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define __UINT_LEAST8_MAX UINT8_MAX 6416bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT8_TYPE__ */ 6426bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6436bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __INT_LEAST8_MIN 6446bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST8_MIN __INT_LEAST8_MIN 6456bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_LEAST8_MAX __INT_LEAST8_MAX 6466bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_LEAST8_MAX __UINT_LEAST8_MAX 6476bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST8_MIN __INT_LEAST8_MIN 6486bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define INT_FAST8_MAX __INT_LEAST8_MAX 6496bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define UINT_FAST8_MAX __UINT_LEAST8_MAX 6506bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __INT_LEAST8_MIN */ 6516bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6526bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* Some utility macros */ 6536bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __INTN_MIN(n) __stdint_join3( INT, n, _MIN) 6546bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __INTN_MAX(n) __stdint_join3( INT, n, _MAX) 6556bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __UINTN_MAX(n) __stdint_join3(UINT, n, _MAX) 6566bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __INTN_C(n, v) __stdint_join3( INT, n, _C(v)) 6576bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define __UINTN_C(n, v) __stdint_join3(UINT, n, _C(v)) 6586bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6596bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* C99 7.18.2.4 Limits of integer types capable of holding object pointers. */ 6606bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* C99 7.18.3 Limits of other integer types. */ 6616bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6626bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define INTPTR_MIN __INTN_MIN(__INTPTR_WIDTH__) 6636bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define INTPTR_MAX __INTN_MAX(__INTPTR_WIDTH__) 6646bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define UINTPTR_MAX __UINTN_MAX(__INTPTR_WIDTH__) 6656bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define PTRDIFF_MIN __INTN_MIN(__PTRDIFF_WIDTH__) 6666bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define PTRDIFF_MAX __INTN_MAX(__PTRDIFF_WIDTH__) 6676bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define SIZE_MAX __UINTN_MAX(__SIZE_WIDTH__) 6686bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6696bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__ 6706bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker * is enabled. */ 6716bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 6726bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define RSIZE_MAX (SIZE_MAX >> 1) 6736bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif 6746bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6756bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* C99 7.18.2.5 Limits of greatest-width integer types. */ 6766bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define INTMAX_MIN __INTN_MIN(__INTMAX_WIDTH__) 6776bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define INTMAX_MAX __INTN_MAX(__INTMAX_WIDTH__) 6786bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define UINTMAX_MAX __UINTN_MAX(__INTMAX_WIDTH__) 6796bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6806bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* C99 7.18.3 Limits of other integer types. */ 6816bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define SIG_ATOMIC_MIN __INTN_MIN(__SIG_ATOMIC_WIDTH__) 6826bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define SIG_ATOMIC_MAX __INTN_MAX(__SIG_ATOMIC_WIDTH__) 6836bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifdef __WINT_UNSIGNED__ 6846bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define WINT_MIN __UINTN_C(__WINT_WIDTH__, 0) 6856bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define WINT_MAX __UINTN_MAX(__WINT_WIDTH__) 6866bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#else 6876bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define WINT_MIN __INTN_MIN(__WINT_WIDTH__) 6886bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define WINT_MAX __INTN_MAX(__WINT_WIDTH__) 6896bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif 6906bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 6916bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifndef WCHAR_MAX 6926bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define WCHAR_MAX __WCHAR_MAX__ 6936bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif 6946bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#ifndef WCHAR_MIN 6956bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# if __WCHAR_MAX__ == __INTN_MAX(__WCHAR_WIDTH__) 6966bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define WCHAR_MIN __INTN_MIN(__WCHAR_WIDTH__) 6976bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# else 6986bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# define WCHAR_MIN __UINTN_C(__WCHAR_WIDTH__, 0) 6996bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker# endif 7006bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif 7016bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 7026bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker/* 7.18.4.2 Macros for greatest-width integer constants. */ 7036bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define INTMAX_C(v) __INTN_C(__INTMAX_WIDTH__, v) 7046bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#define UINTMAX_C(v) __UINTN_C(__INTMAX_WIDTH__, v) 7056bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker 7066bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __STDC_HOSTED__ */ 7076bdbd720989797e8a53237ef3ef213c4114f869gitbuildkicker#endif /* __CLANG_STDINT_H */ 708