Annotation of embedaddon/libiconv/srclib/stdint.in.h, revision 1.1.1.1

1.1       misho       1: /* Copyright (C) 2001-2002, 2004-2009 Free Software Foundation, Inc.
                      2:    Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
                      3:    This file is part of gnulib.
                      4: 
                      5:    This program is free software; you can redistribute it and/or modify
                      6:    it under the terms of the GNU General Public License as published by
                      7:    the Free Software Foundation; either version 3, or (at your option)
                      8:    any later version.
                      9: 
                     10:    This program is distributed in the hope that it will be useful,
                     11:    but WITHOUT ANY WARRANTY; without even the implied warranty of
                     12:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     13:    GNU General Public License for more details.
                     14: 
                     15:    You should have received a copy of the GNU General Public License
                     16:    along with this program; if not, write to the Free Software Foundation,
                     17:    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
                     18: 
                     19: /*
                     20:  * ISO C 99 <stdint.h> for platforms that lack it.
                     21:  * <http://www.opengroup.org/susv3xbd/stdint.h.html>
                     22:  */
                     23: 
                     24: #ifndef _GL_STDINT_H
                     25: 
                     26: /* When including a system file that in turn includes <inttypes.h>,
                     27:    use the system <inttypes.h>, not our substitute.  This avoids
                     28:    problems with (for example) VMS, whose <sys/bitypes.h> includes
                     29:    <inttypes.h>.  */
                     30: #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
                     31: 
                     32: /* Get those types that are already defined in other system include
                     33:    files, so that we can "#define int8_t signed char" below without
                     34:    worrying about a later system include file containing a "typedef
                     35:    signed char int8_t;" that will get messed up by our macro.  Our
                     36:    macros should all be consistent with the system versions, except
                     37:    for the "fast" types and macros, which we recommend against using
                     38:    in public interfaces due to compiler differences.  */
                     39: 
                     40: #if @HAVE_STDINT_H@
                     41: # if defined __sgi && ! defined __c99
                     42:    /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
                     43:       with "This header file is to be used only for c99 mode compilations"
                     44:       diagnostics.  */
                     45: #  define __STDINT_H__
                     46: # endif
                     47:   /* Other systems may have an incomplete or buggy <stdint.h>.
                     48:      Include it before <inttypes.h>, since any "#include <stdint.h>"
                     49:      in <inttypes.h> would reinclude us, skipping our contents because
                     50:      _GL_STDINT_H is defined.
                     51:      The include_next requires a split double-inclusion guard.  */
                     52: # if __GNUC__ >= 3
                     53: @PRAGMA_SYSTEM_HEADER@
                     54: # endif
                     55: # @INCLUDE_NEXT@ @NEXT_STDINT_H@
                     56: #endif
                     57: 
                     58: #if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
                     59: #define _GL_STDINT_H
                     60: 
                     61: /* <sys/types.h> defines some of the stdint.h types as well, on glibc,
                     62:    IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
                     63:    AIX 5.2 <sys/types.h> isn't needed and causes troubles.
                     64:    MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
                     65:    relies on the system <stdint.h> definitions, so include
                     66:    <sys/types.h> after @NEXT_STDINT_H@.  */
                     67: #if @HAVE_SYS_TYPES_H@ && ! defined _AIX
                     68: # include <sys/types.h>
                     69: #endif
                     70: 
                     71: /* Get LONG_MIN, LONG_MAX, ULONG_MAX.  */
                     72: #include <limits.h>
                     73: 
                     74: #if @HAVE_INTTYPES_H@
                     75:   /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
                     76:      int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
                     77:      <inttypes.h> also defines intptr_t and uintptr_t.  */
                     78: # include <inttypes.h>
                     79: #elif @HAVE_SYS_INTTYPES_H@
                     80:   /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
                     81:      the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX.  */
                     82: # include <sys/inttypes.h>
                     83: #endif
                     84: 
                     85: #if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
                     86:   /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
                     87:      int{8,16,32,64}_t and __BIT_TYPES_DEFINED__.  In libc5 >= 5.2.2 it is
                     88:      included by <sys/types.h>.  */
                     89: # include <sys/bitypes.h>
                     90: #endif
                     91: 
                     92: #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
                     93: 
                     94: /* Minimum and maximum values for a integer type under the usual assumption.
                     95:    Return an unspecified value if BITS == 0, adding a check to pacify
                     96:    picky compilers.  */
                     97: 
                     98: #define _STDINT_MIN(signed, bits, zero) \
                     99:   ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
                    100: 
                    101: #define _STDINT_MAX(signed, bits, zero) \
                    102:   ((signed) \
                    103:    ? ~ _STDINT_MIN (signed, bits, zero) \
                    104:    : /* The expression for the unsigned case.  The subtraction of (signed) \
                    105:        is a nop in the unsigned case and avoids "signed integer overflow" \
                    106:        warnings in the signed case.  */ \
                    107:      ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
                    108: 
                    109: /* 7.18.1.1. Exact-width integer types */
                    110: 
                    111: /* Here we assume a standard architecture where the hardware integer
                    112:    types have 8, 16, 32, optionally 64 bits.  */
                    113: 
                    114: #undef int8_t
                    115: #undef uint8_t
                    116: typedef signed char gl_int8_t;
                    117: typedef unsigned char gl_uint8_t;
                    118: #define int8_t gl_int8_t
                    119: #define uint8_t gl_uint8_t
                    120: 
                    121: #undef int16_t
                    122: #undef uint16_t
                    123: typedef short int gl_int16_t;
                    124: typedef unsigned short int gl_uint16_t;
                    125: #define int16_t gl_int16_t
                    126: #define uint16_t gl_uint16_t
                    127: 
                    128: #undef int32_t
                    129: #undef uint32_t
                    130: typedef int gl_int32_t;
                    131: typedef unsigned int gl_uint32_t;
                    132: #define int32_t gl_int32_t
                    133: #define uint32_t gl_uint32_t
                    134: 
                    135: /* Do not undefine int64_t if gnulib is not being used with 64-bit
                    136:    types, since otherwise it breaks platforms like Tandem/NSK.  */
                    137: #if LONG_MAX >> 31 >> 31 == 1
                    138: # undef int64_t
                    139: typedef long int gl_int64_t;
                    140: # define int64_t gl_int64_t
                    141: # define GL_INT64_T
                    142: #elif defined _MSC_VER
                    143: # undef int64_t
                    144: typedef __int64 gl_int64_t;
                    145: # define int64_t gl_int64_t
                    146: # define GL_INT64_T
                    147: #elif @HAVE_LONG_LONG_INT@
                    148: # undef int64_t
                    149: typedef long long int gl_int64_t;
                    150: # define int64_t gl_int64_t
                    151: # define GL_INT64_T
                    152: #endif
                    153: 
                    154: #if ULONG_MAX >> 31 >> 31 >> 1 == 1
                    155: # undef uint64_t
                    156: typedef unsigned long int gl_uint64_t;
                    157: # define uint64_t gl_uint64_t
                    158: # define GL_UINT64_T
                    159: #elif defined _MSC_VER
                    160: # undef uint64_t
                    161: typedef unsigned __int64 gl_uint64_t;
                    162: # define uint64_t gl_uint64_t
                    163: # define GL_UINT64_T
                    164: #elif @HAVE_UNSIGNED_LONG_LONG_INT@
                    165: # undef uint64_t
                    166: typedef unsigned long long int gl_uint64_t;
                    167: # define uint64_t gl_uint64_t
                    168: # define GL_UINT64_T
                    169: #endif
                    170: 
                    171: /* Avoid collision with Solaris 2.5.1 <pthread.h> etc.  */
                    172: #define _UINT8_T
                    173: #define _UINT32_T
                    174: #define _UINT64_T
                    175: 
                    176: 
                    177: /* 7.18.1.2. Minimum-width integer types */
                    178: 
                    179: /* Here we assume a standard architecture where the hardware integer
                    180:    types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
                    181:    are the same as the corresponding N_t types.  */
                    182: 
                    183: #undef int_least8_t
                    184: #undef uint_least8_t
                    185: #undef int_least16_t
                    186: #undef uint_least16_t
                    187: #undef int_least32_t
                    188: #undef uint_least32_t
                    189: #undef int_least64_t
                    190: #undef uint_least64_t
                    191: #define int_least8_t int8_t
                    192: #define uint_least8_t uint8_t
                    193: #define int_least16_t int16_t
                    194: #define uint_least16_t uint16_t
                    195: #define int_least32_t int32_t
                    196: #define uint_least32_t uint32_t
                    197: #ifdef GL_INT64_T
                    198: # define int_least64_t int64_t
                    199: #endif
                    200: #ifdef GL_UINT64_T
                    201: # define uint_least64_t uint64_t
                    202: #endif
                    203: 
                    204: /* 7.18.1.3. Fastest minimum-width integer types */
                    205: 
                    206: /* Note: Other <stdint.h> substitutes may define these types differently.
                    207:    It is not recommended to use these types in public header files. */
                    208: 
                    209: /* Here we assume a standard architecture where the hardware integer
                    210:    types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
                    211:    are taken from the same list of types.  Assume that 'long int'
                    212:    is fast enough for all narrower integers.  */
                    213: 
                    214: #undef int_fast8_t
                    215: #undef uint_fast8_t
                    216: #undef int_fast16_t
                    217: #undef uint_fast16_t
                    218: #undef int_fast32_t
                    219: #undef uint_fast32_t
                    220: #undef int_fast64_t
                    221: #undef uint_fast64_t
                    222: typedef long int gl_int_fast8_t;
                    223: typedef unsigned long int gl_uint_fast8_t;
                    224: typedef long int gl_int_fast16_t;
                    225: typedef unsigned long int gl_uint_fast16_t;
                    226: typedef long int gl_int_fast32_t;
                    227: typedef unsigned long int gl_uint_fast32_t;
                    228: #define int_fast8_t gl_int_fast8_t
                    229: #define uint_fast8_t gl_uint_fast8_t
                    230: #define int_fast16_t gl_int_fast16_t
                    231: #define uint_fast16_t gl_uint_fast16_t
                    232: #define int_fast32_t gl_int_fast32_t
                    233: #define uint_fast32_t gl_uint_fast32_t
                    234: #ifdef GL_INT64_T
                    235: # define int_fast64_t int64_t
                    236: #endif
                    237: #ifdef GL_UINT64_T
                    238: # define uint_fast64_t uint64_t
                    239: #endif
                    240: 
                    241: /* 7.18.1.4. Integer types capable of holding object pointers */
                    242: 
                    243: #undef intptr_t
                    244: #undef uintptr_t
                    245: typedef long int gl_intptr_t;
                    246: typedef unsigned long int gl_uintptr_t;
                    247: #define intptr_t gl_intptr_t
                    248: #define uintptr_t gl_uintptr_t
                    249: 
                    250: /* 7.18.1.5. Greatest-width integer types */
                    251: 
                    252: /* Note: These types are compiler dependent. It may be unwise to use them in
                    253:    public header files. */
                    254: 
                    255: #undef intmax_t
                    256: #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
                    257: typedef long long int gl_intmax_t;
                    258: # define intmax_t gl_intmax_t
                    259: #elif defined GL_INT64_T
                    260: # define intmax_t int64_t
                    261: #else
                    262: typedef long int gl_intmax_t;
                    263: # define intmax_t gl_intmax_t
                    264: #endif
                    265: 
                    266: #undef uintmax_t
                    267: #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
                    268: typedef unsigned long long int gl_uintmax_t;
                    269: # define uintmax_t gl_uintmax_t
                    270: #elif defined GL_UINT64_T
                    271: # define uintmax_t uint64_t
                    272: #else
                    273: typedef unsigned long int gl_uintmax_t;
                    274: # define uintmax_t gl_uintmax_t
                    275: #endif
                    276: 
                    277: /* Verify that intmax_t and uintmax_t have the same size.  Too much code
                    278:    breaks if this is not the case.  If this check fails, the reason is likely
                    279:    to be found in the autoconf macros.  */
                    280: typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - 1];
                    281: 
                    282: /* 7.18.2. Limits of specified-width integer types */
                    283: 
                    284: #if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
                    285: 
                    286: /* 7.18.2.1. Limits of exact-width integer types */
                    287: 
                    288: /* Here we assume a standard architecture where the hardware integer
                    289:    types have 8, 16, 32, optionally 64 bits.  */
                    290: 
                    291: #undef INT8_MIN
                    292: #undef INT8_MAX
                    293: #undef UINT8_MAX
                    294: #define INT8_MIN  (~ INT8_MAX)
                    295: #define INT8_MAX  127
                    296: #define UINT8_MAX  255
                    297: 
                    298: #undef INT16_MIN
                    299: #undef INT16_MAX
                    300: #undef UINT16_MAX
                    301: #define INT16_MIN  (~ INT16_MAX)
                    302: #define INT16_MAX  32767
                    303: #define UINT16_MAX  65535
                    304: 
                    305: #undef INT32_MIN
                    306: #undef INT32_MAX
                    307: #undef UINT32_MAX
                    308: #define INT32_MIN  (~ INT32_MAX)
                    309: #define INT32_MAX  2147483647
                    310: #define UINT32_MAX  4294967295U
                    311: 
                    312: #undef INT64_MIN
                    313: #undef INT64_MAX
                    314: #ifdef GL_INT64_T
                    315: /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
                    316:    evaluates the latter incorrectly in preprocessor expressions.  */
                    317: # define INT64_MIN  (- INTMAX_C (1) << 63)
                    318: # define INT64_MAX  INTMAX_C (9223372036854775807)
                    319: #endif
                    320: 
                    321: #undef UINT64_MAX
                    322: #ifdef GL_UINT64_T
                    323: # define UINT64_MAX  UINTMAX_C (18446744073709551615)
                    324: #endif
                    325: 
                    326: /* 7.18.2.2. Limits of minimum-width integer types */
                    327: 
                    328: /* Here we assume a standard architecture where the hardware integer
                    329:    types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
                    330:    are the same as the corresponding N_t types.  */
                    331: 
                    332: #undef INT_LEAST8_MIN
                    333: #undef INT_LEAST8_MAX
                    334: #undef UINT_LEAST8_MAX
                    335: #define INT_LEAST8_MIN  INT8_MIN
                    336: #define INT_LEAST8_MAX  INT8_MAX
                    337: #define UINT_LEAST8_MAX  UINT8_MAX
                    338: 
                    339: #undef INT_LEAST16_MIN
                    340: #undef INT_LEAST16_MAX
                    341: #undef UINT_LEAST16_MAX
                    342: #define INT_LEAST16_MIN  INT16_MIN
                    343: #define INT_LEAST16_MAX  INT16_MAX
                    344: #define UINT_LEAST16_MAX  UINT16_MAX
                    345: 
                    346: #undef INT_LEAST32_MIN
                    347: #undef INT_LEAST32_MAX
                    348: #undef UINT_LEAST32_MAX
                    349: #define INT_LEAST32_MIN  INT32_MIN
                    350: #define INT_LEAST32_MAX  INT32_MAX
                    351: #define UINT_LEAST32_MAX  UINT32_MAX
                    352: 
                    353: #undef INT_LEAST64_MIN
                    354: #undef INT_LEAST64_MAX
                    355: #ifdef GL_INT64_T
                    356: # define INT_LEAST64_MIN  INT64_MIN
                    357: # define INT_LEAST64_MAX  INT64_MAX
                    358: #endif
                    359: 
                    360: #undef UINT_LEAST64_MAX
                    361: #ifdef GL_UINT64_T
                    362: # define UINT_LEAST64_MAX  UINT64_MAX
                    363: #endif
                    364: 
                    365: /* 7.18.2.3. Limits of fastest minimum-width integer types */
                    366: 
                    367: /* Here we assume a standard architecture where the hardware integer
                    368:    types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
                    369:    are taken from the same list of types.  */
                    370: 
                    371: #undef INT_FAST8_MIN
                    372: #undef INT_FAST8_MAX
                    373: #undef UINT_FAST8_MAX
                    374: #define INT_FAST8_MIN  LONG_MIN
                    375: #define INT_FAST8_MAX  LONG_MAX
                    376: #define UINT_FAST8_MAX  ULONG_MAX
                    377: 
                    378: #undef INT_FAST16_MIN
                    379: #undef INT_FAST16_MAX
                    380: #undef UINT_FAST16_MAX
                    381: #define INT_FAST16_MIN  LONG_MIN
                    382: #define INT_FAST16_MAX  LONG_MAX
                    383: #define UINT_FAST16_MAX  ULONG_MAX
                    384: 
                    385: #undef INT_FAST32_MIN
                    386: #undef INT_FAST32_MAX
                    387: #undef UINT_FAST32_MAX
                    388: #define INT_FAST32_MIN  LONG_MIN
                    389: #define INT_FAST32_MAX  LONG_MAX
                    390: #define UINT_FAST32_MAX  ULONG_MAX
                    391: 
                    392: #undef INT_FAST64_MIN
                    393: #undef INT_FAST64_MAX
                    394: #ifdef GL_INT64_T
                    395: # define INT_FAST64_MIN  INT64_MIN
                    396: # define INT_FAST64_MAX  INT64_MAX
                    397: #endif
                    398: 
                    399: #undef UINT_FAST64_MAX
                    400: #ifdef GL_UINT64_T
                    401: # define UINT_FAST64_MAX  UINT64_MAX
                    402: #endif
                    403: 
                    404: /* 7.18.2.4. Limits of integer types capable of holding object pointers */
                    405: 
                    406: #undef INTPTR_MIN
                    407: #undef INTPTR_MAX
                    408: #undef UINTPTR_MAX
                    409: #define INTPTR_MIN  LONG_MIN
                    410: #define INTPTR_MAX  LONG_MAX
                    411: #define UINTPTR_MAX  ULONG_MAX
                    412: 
                    413: /* 7.18.2.5. Limits of greatest-width integer types */
                    414: 
                    415: #undef INTMAX_MIN
                    416: #undef INTMAX_MAX
                    417: #ifdef INT64_MAX
                    418: # define INTMAX_MIN  INT64_MIN
                    419: # define INTMAX_MAX  INT64_MAX
                    420: #else
                    421: # define INTMAX_MIN  INT32_MIN
                    422: # define INTMAX_MAX  INT32_MAX
                    423: #endif
                    424: 
                    425: #undef UINTMAX_MAX
                    426: #ifdef UINT64_MAX
                    427: # define UINTMAX_MAX  UINT64_MAX
                    428: #else
                    429: # define UINTMAX_MAX  UINT32_MAX
                    430: #endif
                    431: 
                    432: /* 7.18.3. Limits of other integer types */
                    433: 
                    434: /* ptrdiff_t limits */
                    435: #undef PTRDIFF_MIN
                    436: #undef PTRDIFF_MAX
                    437: #if @APPLE_UNIVERSAL_BUILD@
                    438: # ifdef _LP64
                    439: #  define PTRDIFF_MIN  _STDINT_MIN (1, 64, 0l)
                    440: #  define PTRDIFF_MAX  _STDINT_MAX (1, 64, 0l)
                    441: # else
                    442: #  define PTRDIFF_MIN  _STDINT_MIN (1, 32, 0)
                    443: #  define PTRDIFF_MAX  _STDINT_MAX (1, 32, 0)
                    444: # endif
                    445: #else
                    446: # define PTRDIFF_MIN  \
                    447:     _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
                    448: # define PTRDIFF_MAX  \
                    449:     _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
                    450: #endif
                    451: 
                    452: /* sig_atomic_t limits */
                    453: #undef SIG_ATOMIC_MIN
                    454: #undef SIG_ATOMIC_MAX
                    455: #define SIG_ATOMIC_MIN  \
                    456:    _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
                    457:                0@SIG_ATOMIC_T_SUFFIX@)
                    458: #define SIG_ATOMIC_MAX  \
                    459:    _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
                    460:                0@SIG_ATOMIC_T_SUFFIX@)
                    461: 
                    462: 
                    463: /* size_t limit */
                    464: #undef SIZE_MAX
                    465: #if @APPLE_UNIVERSAL_BUILD@
                    466: # ifdef _LP64
                    467: #  define SIZE_MAX  _STDINT_MAX (0, 64, 0ul)
                    468: # else
                    469: #  define SIZE_MAX  _STDINT_MAX (0, 32, 0ul)
                    470: # endif
                    471: #else
                    472: # define SIZE_MAX  _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
                    473: #endif
                    474: 
                    475: /* wchar_t limits */
                    476: /* Get WCHAR_MIN, WCHAR_MAX.
                    477:    This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested
                    478:    includes <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes
                    479:    <stdint.h> and assumes its types are already defined.  */
                    480: #if ! (defined WCHAR_MIN && defined WCHAR_MAX)
                    481: # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
                    482: # include <wchar.h>
                    483: # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
                    484: #endif
                    485: #undef WCHAR_MIN
                    486: #undef WCHAR_MAX
                    487: #define WCHAR_MIN  \
                    488:    _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
                    489: #define WCHAR_MAX  \
                    490:    _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
                    491: 
                    492: /* wint_t limits */
                    493: #undef WINT_MIN
                    494: #undef WINT_MAX
                    495: #define WINT_MIN  \
                    496:    _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
                    497: #define WINT_MAX  \
                    498:    _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
                    499: 
                    500: #endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
                    501: 
                    502: /* 7.18.4. Macros for integer constants */
                    503: 
                    504: #if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
                    505: 
                    506: /* 7.18.4.1. Macros for minimum-width integer constants */
                    507: /* According to ISO C 99 Technical Corrigendum 1 */
                    508: 
                    509: /* Here we assume a standard architecture where the hardware integer
                    510:    types have 8, 16, 32, optionally 64 bits, and int is 32 bits.  */
                    511: 
                    512: #undef INT8_C
                    513: #undef UINT8_C
                    514: #define INT8_C(x) x
                    515: #define UINT8_C(x) x
                    516: 
                    517: #undef INT16_C
                    518: #undef UINT16_C
                    519: #define INT16_C(x) x
                    520: #define UINT16_C(x) x
                    521: 
                    522: #undef INT32_C
                    523: #undef UINT32_C
                    524: #define INT32_C(x) x
                    525: #define UINT32_C(x) x ## U
                    526: 
                    527: #undef INT64_C
                    528: #undef UINT64_C
                    529: #if LONG_MAX >> 31 >> 31 == 1
                    530: # define INT64_C(x) x##L
                    531: #elif defined _MSC_VER
                    532: # define INT64_C(x) x##i64
                    533: #elif @HAVE_LONG_LONG_INT@
                    534: # define INT64_C(x) x##LL
                    535: #endif
                    536: #if ULONG_MAX >> 31 >> 31 >> 1 == 1
                    537: # define UINT64_C(x) x##UL
                    538: #elif defined _MSC_VER
                    539: # define UINT64_C(x) x##ui64
                    540: #elif @HAVE_UNSIGNED_LONG_LONG_INT@
                    541: # define UINT64_C(x) x##ULL
                    542: #endif
                    543: 
                    544: /* 7.18.4.2. Macros for greatest-width integer constants */
                    545: 
                    546: #undef INTMAX_C
                    547: #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
                    548: # define INTMAX_C(x)   x##LL
                    549: #elif defined GL_INT64_T
                    550: # define INTMAX_C(x)   INT64_C(x)
                    551: #else
                    552: # define INTMAX_C(x)   x##L
                    553: #endif
                    554: 
                    555: #undef UINTMAX_C
                    556: #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
                    557: # define UINTMAX_C(x)  x##ULL
                    558: #elif defined GL_UINT64_T
                    559: # define UINTMAX_C(x)  UINT64_C(x)
                    560: #else
                    561: # define UINTMAX_C(x)  x##UL
                    562: #endif
                    563: 
                    564: #endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
                    565: 
                    566: #endif /* _GL_STDINT_H */
                    567: #endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>