105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ 205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Copyright (C) 2001-2002, 2004-2012 Free Software Foundation, Inc. 305436638acc7c010349a69c3395f1a57c642dc62Ying Wang Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. 405436638acc7c010349a69c3395f1a57c642dc62Ying Wang This file is part of gnulib. 505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 605436638acc7c010349a69c3395f1a57c642dc62Ying Wang This program is free software; you can redistribute it and/or modify 705436638acc7c010349a69c3395f1a57c642dc62Ying Wang it under the terms of the GNU General Public License as published by 805436638acc7c010349a69c3395f1a57c642dc62Ying Wang the Free Software Foundation; either version 3, or (at your option) 905436638acc7c010349a69c3395f1a57c642dc62Ying Wang any later version. 1005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 1105436638acc7c010349a69c3395f1a57c642dc62Ying Wang This program is distributed in the hope that it will be useful, 1205436638acc7c010349a69c3395f1a57c642dc62Ying Wang but WITHOUT ANY WARRANTY; without even the implied warranty of 1305436638acc7c010349a69c3395f1a57c642dc62Ying Wang MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1405436638acc7c010349a69c3395f1a57c642dc62Ying Wang GNU General Public License for more details. 1505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 1605436638acc7c010349a69c3395f1a57c642dc62Ying Wang You should have received a copy of the GNU General Public License 1705436638acc7c010349a69c3395f1a57c642dc62Ying Wang along with this program; if not, see <http://www.gnu.org/licenses/>. */ 1805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 1905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 2005436638acc7c010349a69c3395f1a57c642dc62Ying Wang * ISO C 99 <stdint.h> for platforms that lack it. 2105436638acc7c010349a69c3395f1a57c642dc62Ying Wang * <http://www.opengroup.org/susv3xbd/stdint.h.html> 2205436638acc7c010349a69c3395f1a57c642dc62Ying Wang */ 2305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 2405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _GL_STDINT_H 2505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 2605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if __GNUC__ >= 3 2705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#pragma GCC system_header 2805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 2905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 3005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 3105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* When including a system file that in turn includes <inttypes.h>, 3205436638acc7c010349a69c3395f1a57c642dc62Ying Wang use the system <inttypes.h>, not our substitute. This avoids 3305436638acc7c010349a69c3395f1a57c642dc62Ying Wang problems with (for example) VMS, whose <sys/bitypes.h> includes 3405436638acc7c010349a69c3395f1a57c642dc62Ying Wang <inttypes.h>. */ 3505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H 3605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 3705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* On Android (Bionic libc), <sys/types.h> includes this file before 3805436638acc7c010349a69c3395f1a57c642dc62Ying Wang having defined 'time_t'. Therefore in this case avoid including 3905436638acc7c010349a69c3395f1a57c642dc62Ying Wang other system header files; just include the system's <stdint.h>. 4005436638acc7c010349a69c3395f1a57c642dc62Ying Wang Ideally we should test __BIONIC__ here, but it is only defined after 4105436638acc7c010349a69c3395f1a57c642dc62Ying Wang <sys/cdefs.h> has been included; hence test __ANDROID__ instead. */ 4205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined __ANDROID__ \ 4305436638acc7c010349a69c3395f1a57c642dc62Ying Wang && defined _SYS_TYPES_H_ && !defined _SSIZE_T_DEFINED_ 4405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# include_next <stdint.h> 4505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else 4605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 4705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Get those types that are already defined in other system include 4805436638acc7c010349a69c3395f1a57c642dc62Ying Wang files, so that we can "#define int8_t signed char" below without 4905436638acc7c010349a69c3395f1a57c642dc62Ying Wang worrying about a later system include file containing a "typedef 5005436638acc7c010349a69c3395f1a57c642dc62Ying Wang signed char int8_t;" that will get messed up by our macro. Our 5105436638acc7c010349a69c3395f1a57c642dc62Ying Wang macros should all be consistent with the system versions, except 5205436638acc7c010349a69c3395f1a57c642dc62Ying Wang for the "fast" types and macros, which we recommend against using 5305436638acc7c010349a69c3395f1a57c642dc62Ying Wang in public interfaces due to compiler differences. */ 5405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 5505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1 5605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if defined __sgi && ! defined __c99 5705436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users 5805436638acc7c010349a69c3395f1a57c642dc62Ying Wang with "This header file is to be used only for c99 mode compilations" 5905436638acc7c010349a69c3395f1a57c642dc62Ying Wang diagnostics. */ 6005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define __STDINT_H__ 6105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 6205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 6305436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* Some pre-C++11 <stdint.h> implementations need this. */ 6405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef __cplusplus 6505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifndef __STDC_CONSTANT_MACROS 6605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define __STDC_CONSTANT_MACROS 1 6705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 6805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifndef __STDC_LIMIT_MACROS 6905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define __STDC_LIMIT_MACROS 1 7005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 7105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 7205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 7305436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* Other systems may have an incomplete or buggy <stdint.h>. 7405436638acc7c010349a69c3395f1a57c642dc62Ying Wang Include it before <inttypes.h>, since any "#include <stdint.h>" 7505436638acc7c010349a69c3395f1a57c642dc62Ying Wang in <inttypes.h> would reinclude us, skipping our contents because 7605436638acc7c010349a69c3395f1a57c642dc62Ying Wang _GL_STDINT_H is defined. 7705436638acc7c010349a69c3395f1a57c642dc62Ying Wang The include_next requires a split double-inclusion guard. */ 7805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# include_next <stdint.h> 7905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 8005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 8105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H 8205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _GL_STDINT_H 8305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 8405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* <sys/types.h> defines some of the stdint.h types as well, on glibc, 8505436638acc7c010349a69c3395f1a57c642dc62Ying Wang IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>). 8605436638acc7c010349a69c3395f1a57c642dc62Ying Wang AIX 5.2 <sys/types.h> isn't needed and causes troubles. 8705436638acc7c010349a69c3395f1a57c642dc62Ying Wang Mac OS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but 8805436638acc7c010349a69c3395f1a57c642dc62Ying Wang relies on the system <stdint.h> definitions, so include 8905436638acc7c010349a69c3395f1a57c642dc62Ying Wang <sys/types.h> after <stdint.h>. */ 9005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1 && ! defined _AIX 9105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# include <sys/types.h> 9205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 9305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 9405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, 9505436638acc7c010349a69c3395f1a57c642dc62Ying Wang LONG_MIN, LONG_MAX, ULONG_MAX. */ 9605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include <limits.h> 9705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 9805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1 9905436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines 10005436638acc7c010349a69c3395f1a57c642dc62Ying Wang int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. 10105436638acc7c010349a69c3395f1a57c642dc62Ying Wang <inttypes.h> also defines intptr_t and uintptr_t. */ 10205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# include <inttypes.h> 10305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif 0 10405436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and 10505436638acc7c010349a69c3395f1a57c642dc62Ying Wang the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ 10605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# include <sys/inttypes.h> 10705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 10805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 10905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0 && ! defined __BIT_TYPES_DEFINED__ 11005436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines 11105436638acc7c010349a69c3395f1a57c642dc62Ying Wang int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is 11205436638acc7c010349a69c3395f1a57c642dc62Ying Wang included by <sys/types.h>. */ 11305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# include <sys/bitypes.h> 11405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 11505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 11605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H 11705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 11805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Minimum and maximum values for an integer type under the usual assumption. 11905436638acc7c010349a69c3395f1a57c642dc62Ying Wang Return an unspecified value if BITS == 0, adding a check to pacify 12005436638acc7c010349a69c3395f1a57c642dc62Ying Wang picky compilers. */ 12105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 12205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _STDINT_MIN(signed, bits, zero) \ 12305436638acc7c010349a69c3395f1a57c642dc62Ying Wang ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero)) 12405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 12505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _STDINT_MAX(signed, bits, zero) \ 12605436638acc7c010349a69c3395f1a57c642dc62Ying Wang ((signed) \ 12705436638acc7c010349a69c3395f1a57c642dc62Ying Wang ? ~ _STDINT_MIN (signed, bits, zero) \ 12805436638acc7c010349a69c3395f1a57c642dc62Ying Wang : /* The expression for the unsigned case. The subtraction of (signed) \ 12905436638acc7c010349a69c3395f1a57c642dc62Ying Wang is a nop in the unsigned case and avoids "signed integer overflow" \ 13005436638acc7c010349a69c3395f1a57c642dc62Ying Wang warnings in the signed case. */ \ 13105436638acc7c010349a69c3395f1a57c642dc62Ying Wang ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) 13205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 13305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if !GNULIB_defined_stdint_types 13405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 13505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.1.1. Exact-width integer types */ 13605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 13705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Here we assume a standard architecture where the hardware integer 13805436638acc7c010349a69c3395f1a57c642dc62Ying Wang types have 8, 16, 32, optionally 64 bits. */ 13905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 14005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef int8_t 14105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef uint8_t 14205436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef signed char gl_int8_t; 14305436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef unsigned char gl_uint8_t; 14405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define int8_t gl_int8_t 14505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define uint8_t gl_uint8_t 14605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 14705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef int16_t 14805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef uint16_t 14905436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef short int gl_int16_t; 15005436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef unsigned short int gl_uint16_t; 15105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define int16_t gl_int16_t 15205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define uint16_t gl_uint16_t 15305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 15405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef int32_t 15505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef uint32_t 15605436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef int gl_int32_t; 15705436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef unsigned int gl_uint32_t; 15805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define int32_t gl_int32_t 15905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define uint32_t gl_uint32_t 16005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 16105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* If the system defines INT64_MAX, assume int64_t works. That way, 16205436638acc7c010349a69c3395f1a57c642dc62Ying Wang if the underlying platform defines int64_t to be a 64-bit long long 16305436638acc7c010349a69c3395f1a57c642dc62Ying Wang int, the code below won't mistakenly define it to be a 64-bit long 16405436638acc7c010349a69c3395f1a57c642dc62Ying Wang int, which would mess up C++ name mangling. We must use #ifdef 16505436638acc7c010349a69c3395f1a57c642dc62Ying Wang rather than #if, to avoid an error with HP-UX 10.20 cc. */ 16605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 16705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef INT64_MAX 16805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define GL_INT64_T 16905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else 17005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Do not undefine int64_t if gnulib is not being used with 64-bit 17105436638acc7c010349a69c3395f1a57c642dc62Ying Wang types, since otherwise it breaks platforms like Tandem/NSK. */ 17205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if LONG_MAX >> 31 >> 31 == 1 17305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef int64_t 17405436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef long int gl_int64_t; 17505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define int64_t gl_int64_t 17605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define GL_INT64_T 17705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined _MSC_VER 17805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef int64_t 17905436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef __int64 gl_int64_t; 18005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define int64_t gl_int64_t 18105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define GL_INT64_T 18205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif 1 18305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef int64_t 18405436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef long long int gl_int64_t; 18505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define int64_t gl_int64_t 18605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define GL_INT64_T 18705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 18805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 18905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 19005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef UINT64_MAX 19105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define GL_UINT64_T 19205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else 19305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if ULONG_MAX >> 31 >> 31 >> 1 == 1 19405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef uint64_t 19505436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef unsigned long int gl_uint64_t; 19605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define uint64_t gl_uint64_t 19705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define GL_UINT64_T 19805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined _MSC_VER 19905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef uint64_t 20005436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef unsigned __int64 gl_uint64_t; 20105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define uint64_t gl_uint64_t 20205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define GL_UINT64_T 20305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif 1 20405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef uint64_t 20505436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef unsigned long long int gl_uint64_t; 20605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define uint64_t gl_uint64_t 20705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define GL_UINT64_T 20805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 20905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 21005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 21105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */ 21205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _UINT8_T 21305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _UINT32_T 21405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _UINT64_T 21505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 21605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 21705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.1.2. Minimum-width integer types */ 21805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 21905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Here we assume a standard architecture where the hardware integer 22005436638acc7c010349a69c3395f1a57c642dc62Ying Wang types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types 22105436638acc7c010349a69c3395f1a57c642dc62Ying Wang are the same as the corresponding N_t types. */ 22205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 22305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef int_least8_t 22405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef uint_least8_t 22505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef int_least16_t 22605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef uint_least16_t 22705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef int_least32_t 22805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef uint_least32_t 22905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef int_least64_t 23005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef uint_least64_t 23105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define int_least8_t int8_t 23205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define uint_least8_t uint8_t 23305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define int_least16_t int16_t 23405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define uint_least16_t uint16_t 23505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define int_least32_t int32_t 23605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define uint_least32_t uint32_t 23705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef GL_INT64_T 23805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define int_least64_t int64_t 23905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 24005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef GL_UINT64_T 24105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define uint_least64_t uint64_t 24205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 24305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 24405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.1.3. Fastest minimum-width integer types */ 24505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 24605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Note: Other <stdint.h> substitutes may define these types differently. 24705436638acc7c010349a69c3395f1a57c642dc62Ying Wang It is not recommended to use these types in public header files. */ 24805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 24905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Here we assume a standard architecture where the hardware integer 25005436638acc7c010349a69c3395f1a57c642dc62Ying Wang types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types 25105436638acc7c010349a69c3395f1a57c642dc62Ying Wang are taken from the same list of types. The following code normally 25205436638acc7c010349a69c3395f1a57c642dc62Ying Wang uses types consistent with glibc, as that lessens the chance of 25305436638acc7c010349a69c3395f1a57c642dc62Ying Wang incompatibility with older GNU hosts. */ 25405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 25505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef int_fast8_t 25605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef uint_fast8_t 25705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef int_fast16_t 25805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef uint_fast16_t 25905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef int_fast32_t 26005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef uint_fast32_t 26105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef int_fast64_t 26205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef uint_fast64_t 26305436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef signed char gl_int_fast8_t; 26405436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef unsigned char gl_uint_fast8_t; 26505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 26605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef __sun 26705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Define types compatible with SunOS 5.10, so that code compiled under 26805436638acc7c010349a69c3395f1a57c642dc62Ying Wang earlier SunOS versions works with code compiled under SunOS 5.10. */ 26905436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef int gl_int_fast32_t; 27005436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef unsigned int gl_uint_fast32_t; 27105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else 27205436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef long int gl_int_fast32_t; 27305436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef unsigned long int gl_uint_fast32_t; 27405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 27505436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef gl_int_fast32_t gl_int_fast16_t; 27605436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef gl_uint_fast32_t gl_uint_fast16_t; 27705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 27805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define int_fast8_t gl_int_fast8_t 27905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define uint_fast8_t gl_uint_fast8_t 28005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define int_fast16_t gl_int_fast16_t 28105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define uint_fast16_t gl_uint_fast16_t 28205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define int_fast32_t gl_int_fast32_t 28305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define uint_fast32_t gl_uint_fast32_t 28405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef GL_INT64_T 28505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define int_fast64_t int64_t 28605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 28705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef GL_UINT64_T 28805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define uint_fast64_t uint64_t 28905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 29005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 29105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.1.4. Integer types capable of holding object pointers */ 29205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 29305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef intptr_t 29405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef uintptr_t 29505436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef long int gl_intptr_t; 29605436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef unsigned long int gl_uintptr_t; 29705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define intptr_t gl_intptr_t 29805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define uintptr_t gl_uintptr_t 29905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 30005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.1.5. Greatest-width integer types */ 30105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 30205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Note: These types are compiler dependent. It may be unwise to use them in 30305436638acc7c010349a69c3395f1a57c642dc62Ying Wang public header files. */ 30405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 30505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* If the system defines INTMAX_MAX, assume that intmax_t works, and 30605436638acc7c010349a69c3395f1a57c642dc62Ying Wang similarly for UINTMAX_MAX and uintmax_t. This avoids problems with 30705436638acc7c010349a69c3395f1a57c642dc62Ying Wang assuming one type where another is used by the system. */ 30805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 30905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef INTMAX_MAX 31005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef INTMAX_C 31105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef intmax_t 31205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1 && LONG_MAX >> 30 == 1 31305436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef long long int gl_intmax_t; 31405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define intmax_t gl_intmax_t 31505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined GL_INT64_T 31605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define intmax_t int64_t 31705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else 31805436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef long int gl_intmax_t; 31905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define intmax_t gl_intmax_t 32005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 32105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 32205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 32305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef UINTMAX_MAX 32405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef UINTMAX_C 32505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef uintmax_t 32605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1 && ULONG_MAX >> 31 == 1 32705436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef unsigned long long int gl_uintmax_t; 32805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define uintmax_t gl_uintmax_t 32905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined GL_UINT64_T 33005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define uintmax_t uint64_t 33105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else 33205436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef unsigned long int gl_uintmax_t; 33305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define uintmax_t gl_uintmax_t 33405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 33505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 33605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 33705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Verify that intmax_t and uintmax_t have the same size. Too much code 33805436638acc7c010349a69c3395f1a57c642dc62Ying Wang breaks if this is not the case. If this check fails, the reason is likely 33905436638acc7c010349a69c3395f1a57c642dc62Ying Wang to be found in the autoconf macros. */ 34005436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) 34105436638acc7c010349a69c3395f1a57c642dc62Ying Wang ? 1 : -1]; 34205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 34305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define GNULIB_defined_stdint_types 1 34405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* !GNULIB_defined_stdint_types */ 34505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 34605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.2. Limits of specified-width integer types */ 34705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 34805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.2.1. Limits of exact-width integer types */ 34905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 35005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Here we assume a standard architecture where the hardware integer 35105436638acc7c010349a69c3395f1a57c642dc62Ying Wang types have 8, 16, 32, optionally 64 bits. */ 35205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 35305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT8_MIN 35405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT8_MAX 35505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT8_MAX 35605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT8_MIN (~ INT8_MAX) 35705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT8_MAX 127 35805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define UINT8_MAX 255 35905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 36005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT16_MIN 36105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT16_MAX 36205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT16_MAX 36305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT16_MIN (~ INT16_MAX) 36405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT16_MAX 32767 36505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define UINT16_MAX 65535 36605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 36705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT32_MIN 36805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT32_MAX 36905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT32_MAX 37005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT32_MIN (~ INT32_MAX) 37105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT32_MAX 2147483647 37205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define UINT32_MAX 4294967295U 37305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 37405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined GL_INT64_T && ! defined INT64_MAX 37505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 37605436638acc7c010349a69c3395f1a57c642dc62Ying Wang evaluates the latter incorrectly in preprocessor expressions. */ 37705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT64_MIN (- INTMAX_C (1) << 63) 37805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT64_MAX INTMAX_C (9223372036854775807) 37905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 38005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 38105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined GL_UINT64_T && ! defined UINT64_MAX 38205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINT64_MAX UINTMAX_C (18446744073709551615) 38305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 38405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 38505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.2.2. Limits of minimum-width integer types */ 38605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 38705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Here we assume a standard architecture where the hardware integer 38805436638acc7c010349a69c3395f1a57c642dc62Ying Wang types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types 38905436638acc7c010349a69c3395f1a57c642dc62Ying Wang are the same as the corresponding N_t types. */ 39005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 39105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_LEAST8_MIN 39205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_LEAST8_MAX 39305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT_LEAST8_MAX 39405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT_LEAST8_MIN INT8_MIN 39505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT_LEAST8_MAX INT8_MAX 39605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define UINT_LEAST8_MAX UINT8_MAX 39705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 39805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_LEAST16_MIN 39905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_LEAST16_MAX 40005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT_LEAST16_MAX 40105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT_LEAST16_MIN INT16_MIN 40205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT_LEAST16_MAX INT16_MAX 40305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define UINT_LEAST16_MAX UINT16_MAX 40405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 40505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_LEAST32_MIN 40605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_LEAST32_MAX 40705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT_LEAST32_MAX 40805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT_LEAST32_MIN INT32_MIN 40905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT_LEAST32_MAX INT32_MAX 41005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define UINT_LEAST32_MAX UINT32_MAX 41105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 41205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_LEAST64_MIN 41305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_LEAST64_MAX 41405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef GL_INT64_T 41505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT_LEAST64_MIN INT64_MIN 41605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT_LEAST64_MAX INT64_MAX 41705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 41805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 41905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT_LEAST64_MAX 42005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef GL_UINT64_T 42105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINT_LEAST64_MAX UINT64_MAX 42205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 42305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 42405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.2.3. Limits of fastest minimum-width integer types */ 42505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 42605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Here we assume a standard architecture where the hardware integer 42705436638acc7c010349a69c3395f1a57c642dc62Ying Wang types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types 42805436638acc7c010349a69c3395f1a57c642dc62Ying Wang are taken from the same list of types. */ 42905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 43005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_FAST8_MIN 43105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_FAST8_MAX 43205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT_FAST8_MAX 43305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT_FAST8_MIN SCHAR_MIN 43405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT_FAST8_MAX SCHAR_MAX 43505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define UINT_FAST8_MAX UCHAR_MAX 43605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 43705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_FAST16_MIN 43805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_FAST16_MAX 43905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT_FAST16_MAX 44005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT_FAST16_MIN INT_FAST32_MIN 44105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT_FAST16_MAX INT_FAST32_MAX 44205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define UINT_FAST16_MAX UINT_FAST32_MAX 44305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 44405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_FAST32_MIN 44505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_FAST32_MAX 44605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT_FAST32_MAX 44705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef __sun 44805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT_FAST32_MIN INT_MIN 44905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT_FAST32_MAX INT_MAX 45005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINT_FAST32_MAX UINT_MAX 45105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else 45205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT_FAST32_MIN LONG_MIN 45305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT_FAST32_MAX LONG_MAX 45405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINT_FAST32_MAX ULONG_MAX 45505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 45605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 45705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_FAST64_MIN 45805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT_FAST64_MAX 45905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef GL_INT64_T 46005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT_FAST64_MIN INT64_MIN 46105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT_FAST64_MAX INT64_MAX 46205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 46305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 46405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT_FAST64_MAX 46505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef GL_UINT64_T 46605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINT_FAST64_MAX UINT64_MAX 46705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 46805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 46905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.2.4. Limits of integer types capable of holding object pointers */ 47005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 47105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INTPTR_MIN 47205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INTPTR_MAX 47305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINTPTR_MAX 47405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INTPTR_MIN LONG_MIN 47505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INTPTR_MAX LONG_MAX 47605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define UINTPTR_MAX ULONG_MAX 47705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 47805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.2.5. Limits of greatest-width integer types */ 47905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 48005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef INTMAX_MAX 48105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef INTMAX_MIN 48205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef INT64_MAX 48305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INTMAX_MIN INT64_MIN 48405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INTMAX_MAX INT64_MAX 48505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else 48605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INTMAX_MIN INT32_MIN 48705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INTMAX_MAX INT32_MAX 48805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 48905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 49005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 49105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef UINTMAX_MAX 49205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef UINT64_MAX 49305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINTMAX_MAX UINT64_MAX 49405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else 49505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINTMAX_MAX UINT32_MAX 49605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 49705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 49805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 49905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.3. Limits of other integer types */ 50005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 50105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* ptrdiff_t limits */ 50205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef PTRDIFF_MIN 50305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef PTRDIFF_MAX 50405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0 50505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef _LP64 50605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l) 50705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) 50805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else 50905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PTRDIFF_MIN _STDINT_MIN (1, 32, 0) 51005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) 51105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 51205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else 51305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PTRDIFF_MIN \ 51405436638acc7c010349a69c3395f1a57c642dc62Ying Wang _STDINT_MIN (1, 64, 0l) 51505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define PTRDIFF_MAX \ 51605436638acc7c010349a69c3395f1a57c642dc62Ying Wang _STDINT_MAX (1, 64, 0l) 51705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 51805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 51905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* sig_atomic_t limits */ 52005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef SIG_ATOMIC_MIN 52105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef SIG_ATOMIC_MAX 52205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SIG_ATOMIC_MIN \ 52305436638acc7c010349a69c3395f1a57c642dc62Ying Wang _STDINT_MIN (1, 32, \ 52405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 0) 52505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SIG_ATOMIC_MAX \ 52605436638acc7c010349a69c3395f1a57c642dc62Ying Wang _STDINT_MAX (1, 32, \ 52705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 0) 52805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 52905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 53005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* size_t limit */ 53105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef SIZE_MAX 53205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 0 53305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# ifdef _LP64 53405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SIZE_MAX _STDINT_MAX (0, 64, 0ul) 53505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else 53605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SIZE_MAX _STDINT_MAX (0, 32, 0ul) 53705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 53805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else 53905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define SIZE_MAX _STDINT_MAX (0, 64, 0ul) 54005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 54105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 54205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* wchar_t limits */ 54305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Get WCHAR_MIN, WCHAR_MAX. 54405436638acc7c010349a69c3395f1a57c642dc62Ying Wang This include is not on the top, above, because on OSF/1 4.0 we have a 54505436638acc7c010349a69c3395f1a57c642dc62Ying Wang sequence of nested includes 54605436638acc7c010349a69c3395f1a57c642dc62Ying Wang <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes 54705436638acc7c010349a69c3395f1a57c642dc62Ying Wang <stdint.h> and assumes its types are already defined. */ 54805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if 1 && ! (defined WCHAR_MIN && defined WCHAR_MAX) 54905436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be 55005436638acc7c010349a69c3395f1a57c642dc62Ying Wang included before <wchar.h>. */ 55105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# include <stddef.h> 55205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# include <stdio.h> 55305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# include <time.h> 55405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H 55505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# include <wchar.h> 55605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H 55705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 55805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef WCHAR_MIN 55905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef WCHAR_MAX 56005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define WCHAR_MIN \ 56105436638acc7c010349a69c3395f1a57c642dc62Ying Wang _STDINT_MIN (1, 32, 0) 56205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define WCHAR_MAX \ 56305436638acc7c010349a69c3395f1a57c642dc62Ying Wang _STDINT_MAX (1, 32, 0) 56405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 56505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* wint_t limits */ 56605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef WINT_MIN 56705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef WINT_MAX 56805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define WINT_MIN \ 56905436638acc7c010349a69c3395f1a57c642dc62Ying Wang _STDINT_MIN (1, 32, 0) 57005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define WINT_MAX \ 57105436638acc7c010349a69c3395f1a57c642dc62Ying Wang _STDINT_MAX (1, 32, 0) 57205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 57305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.4. Macros for integer constants */ 57405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 57505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.4.1. Macros for minimum-width integer constants */ 57605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* According to ISO C 99 Technical Corrigendum 1 */ 57705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 57805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Here we assume a standard architecture where the hardware integer 57905436638acc7c010349a69c3395f1a57c642dc62Ying Wang types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ 58005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 58105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT8_C 58205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT8_C 58305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT8_C(x) x 58405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define UINT8_C(x) x 58505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 58605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT16_C 58705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT16_C 58805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT16_C(x) x 58905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define UINT16_C(x) x 59005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 59105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT32_C 59205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT32_C 59305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define INT32_C(x) x 59405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define UINT32_C(x) x ## U 59505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 59605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef INT64_C 59705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#undef UINT64_C 59805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if LONG_MAX >> 31 >> 31 == 1 59905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT64_C(x) x##L 60005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined _MSC_VER 60105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT64_C(x) x##i64 60205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif 1 60305436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INT64_C(x) x##LL 60405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 60505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if ULONG_MAX >> 31 >> 31 >> 1 == 1 60605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINT64_C(x) x##UL 60705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif defined _MSC_VER 60805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINT64_C(x) x##ui64 60905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#elif 1 61005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINT64_C(x) x##ULL 61105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 61205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 61305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* 7.18.4.2. Macros for greatest-width integer constants */ 61405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 61505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef INTMAX_C 61605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1 && LONG_MAX >> 30 == 1 61705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INTMAX_C(x) x##LL 61805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined GL_INT64_T 61905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INTMAX_C(x) INT64_C(x) 62005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else 62105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define INTMAX_C(x) x##L 62205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 62305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 62405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 62505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef UINTMAX_C 62605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# if 1 && ULONG_MAX >> 31 == 1 62705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINTMAX_C(x) x##ULL 62805436638acc7c010349a69c3395f1a57c642dc62Ying Wang# elif defined GL_UINT64_T 62905436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINTMAX_C(x) UINT64_C(x) 63005436638acc7c010349a69c3395f1a57c642dc62Ying Wang# else 63105436638acc7c010349a69c3395f1a57c642dc62Ying Wang# define UINTMAX_C(x) x##UL 63205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# endif 63305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 63405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 63505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* _GL_STDINT_H */ 63605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* !(defined __ANDROID__ && ...) */ 63705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ 638