Annotation of embedaddon/libiconv/srclib/stdint.in.h, revision 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>