| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093 |
- /*============================================================================
- Kitware Information Macro Library
- Copyright 2010-2018 Kitware, Inc.
- All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of Kitware, Inc. nor the names of its contributors
- may be used to endorse or promote products derived from this
- software without specific prior written permission.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ============================================================================*/
- /*
- This header defines macros with information about sized integer types.
- Only information that can be determined using the preprocessor at
- compilation time is available. No try-compile results may be added
- here. Instead we memorize results on platforms of interest.
- An includer may optionally define the following macros to suppress errors:
- Input:
- KWIML_INT_NO_VERIFY = skip verification declarations
- KWIML_INT_NO_ERROR_INT64_T = type 'KWIML_INT_int64_t' is optional (*)
- KWIML_INT_NO_ERROR_UINT64_T = type 'KWIML_INT_uint64_t' is optional (*)
- KWIML_INT_NO_ERROR_INTPTR_T = type 'KWIML_INT_intptr_t' is optional (*)
- KWIML_INT_NO_ERROR_UINTPTR_T = type 'KWIML_INT_uintptr_t' is optional (*)
- An includer may optionally define the following macros to override defaults.
- Either way, an includer may test these macros after inclusion:
- KWIML_INT_HAVE_STDINT_H = include <stdint.h>
- KWIML_INT_NO_STDINT_H = do not include <stdint.h>
- KWIML_INT_HAVE_INTTYPES_H = include <inttypes.h>
- KWIML_INT_NO_INTTYPES_H = do not include <inttypes.h>
- An includer may test the following macros after inclusion:
- KWIML_INT_VERSION = interface version number # of this header
- KWIML_INT_HAVE_INT#_T = type 'int#_t' is available
- KWIML_INT_HAVE_UINT#_T = type 'uint#_t' is available
- # = 8, 16, 32, 64, PTR
- KWIML_INT_int#_t = signed integer type exactly # bits wide
- KWIML_INT_uint#_t = unsigned integer type exactly # bits wide
- # = 8, 16, 32, 64 (*), ptr (*)
- KWIML_INT_NO_INT64_T = type 'KWIML_INT_int64_t' not available
- KWIML_INT_NO_UINT64_T = type 'KWIML_INT_uint64_t' not available
- KWIML_INT_NO_INTPTR_T = type 'KWIML_INT_intptr_t' not available
- KWIML_INT_NO_UINTPTR_T = type 'KWIML_INT_uintptr_t' not available
- KWIML_INT_INT#_C(c) = signed integer constant at least # bits wide
- KWIML_INT_UINT#_C(c) = unsigned integer constant at least # bits wide
- # = 8, 16, 32, 64 (*)
- KWIML_INT_<fmt># = print or scan format, <fmt> in table below
- # = 8, 16, 32, 64, PTR (*)
- signed unsigned
- ----------- ------------------------------
- | decimal | decimal octal hexadecimal |
- print | PRId PRIi | PRIu PRIo PRIx PRIX |
- scan | SCNd SCNi | SCNu SCNo SCNx |
- ----------- ------------------------------
- The SCN*8 and SCN*64 format macros will not be defined on systems
- with scanf implementations known not to support them.
- KWIML_INT_BROKEN_<fmt># = macro <fmt># is incorrect if defined
- Some compilers define integer format macros incorrectly for their
- own formatted print/scan implementations.
- KWIML_INT_BROKEN_INT#_C = macro INT#_C is incorrect if defined
- KWIML_INT_BROKEN_UINT#_C = macro UINT#_C is incorrect if defined
- Some compilers define integer constant macros incorrectly and
- cannot handle literals as large as the integer type or even
- produce bad preprocessor syntax.
- KWIML_INT_BROKEN_INT8_T = type 'int8_t' is available but incorrect
- Some compilers have a flag to make 'char' (un)signed but do not account
- for it while defining int8_t in the non-default case.
- The broken cases do not affect correctness of the macros documented above.
- */
- #include "abi.h"
- #define KWIML_INT_private_VERSION 1
- /* Guard definition of this version. */
- #ifndef KWIML_INT_detail_DEFINED_VERSION_1
- # define KWIML_INT_detail_DEFINED_VERSION_1 1
- # define KWIML_INT_private_DO_DEFINE
- #endif
- /* Guard verification of this version. */
- #if !defined(KWIML_INT_NO_VERIFY)
- # ifndef KWIML_INT_detail_VERIFIED_VERSION_1
- # define KWIML_INT_detail_VERIFIED_VERSION_1
- # define KWIML_INT_private_DO_VERIFY
- # endif
- #endif
- #ifdef KWIML_INT_private_DO_DEFINE
- #undef KWIML_INT_private_DO_DEFINE
- /* Define version as most recent of those included. */
- #if !defined(KWIML_INT_VERSION) || KWIML_INT_VERSION < KWIML_INT_private_VERSION
- # undef KWIML_INT_VERSION
- # define KWIML_INT_VERSION 1
- #endif
- /*--------------------------------------------------------------------------*/
- #if defined(KWIML_INT_HAVE_STDINT_H) /* Already defined. */
- #elif defined(KWIML_INT_NO_STDINT_H) /* Already defined. */
- #elif defined(HAVE_STDINT_H) /* Optionally provided by includer. */
- # define KWIML_INT_HAVE_STDINT_H 1
- #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */
- # define KWIML_INT_HAVE_STDINT_H 1
- #elif defined(_MSC_VER) /* MSVC */
- # if _MSC_VER >= 1600
- # define KWIML_INT_HAVE_STDINT_H 1
- # else
- # define KWIML_INT_NO_STDINT_H 1
- # endif
- #elif defined(__BORLANDC__) /* Borland */
- # if __BORLANDC__ >= 0x560
- # define KWIML_INT_HAVE_STDINT_H 1
- # else
- # define KWIML_INT_NO_STDINT_H 1
- # endif
- #elif defined(__WATCOMC__) /* Watcom */
- # define KWIML_INT_NO_STDINT_H 1
- #endif
- /*--------------------------------------------------------------------------*/
- #if defined(KWIML_INT_HAVE_INTTYPES_H) /* Already defined. */
- #elif defined(KWIML_INT_NO_INTTYPES_H) /* Already defined. */
- #elif defined(HAVE_INTTYPES_H) /* Optionally provided by includer. */
- # define KWIML_INT_HAVE_INTTYPES_H 1
- #elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 */
- # define KWIML_INT_HAVE_INTTYPES_H 1
- #elif defined(_MSC_VER) /* MSVC */
- # if _MSC_VER >= 1800
- # define KWIML_INT_HAVE_INTTYPES_H 1
- # else
- # define KWIML_INT_NO_INTTYPES_H 1
- # endif
- #elif defined(__BORLANDC__) /* Borland */
- # define KWIML_INT_NO_INTTYPES_H 1
- #elif defined(__WATCOMC__) /* Watcom */
- # define KWIML_INT_NO_INTTYPES_H 1
- #else /* Assume it exists. */
- # define KWIML_INT_HAVE_INTTYPES_H 1
- #endif
- /*--------------------------------------------------------------------------*/
- #if defined(KWIML_INT_HAVE_STDINT_H) && defined(KWIML_INT_NO_STDINT_H)
- # error "Both KWIML_INT_HAVE_STDINT_H and KWIML_INT_NO_STDINT_H defined!"
- #endif
- #if defined(KWIML_INT_HAVE_INTTYPES_H) && defined(KWIML_INT_NO_INTTYPES_H)
- # error "Both KWIML_INT_HAVE_INTTYPES_H and KWIML_INT_NO_INTTYPES_H defined!"
- #endif
- #if defined(KWIML_INT_HAVE_STDINT_H)
- # ifndef KWIML_INT_detail_INCLUDED_STDINT_H
- # define KWIML_INT_detail_INCLUDED_STDINT_H
- # include <stdint.h>
- # endif
- #endif
- #if defined(KWIML_INT_HAVE_INTTYPES_H)
- # ifndef KWIML_INT_detail_INCLUDED_INTTYPES_H
- # define KWIML_INT_detail_INCLUDED_INTTYPES_H
- # if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS)
- # define __STDC_FORMAT_MACROS
- # endif
- # include <inttypes.h>
- # endif
- #endif
- #if defined(KWIML_INT_HAVE_STDINT_H) || defined(KWIML_INT_HAVE_INTTYPES_H)
- #define KWIML_INT_HAVE_INT8_T 1
- #define KWIML_INT_HAVE_UINT8_T 1
- #define KWIML_INT_HAVE_INT16_T 1
- #define KWIML_INT_HAVE_UINT16_T 1
- #define KWIML_INT_HAVE_INT32_T 1
- #define KWIML_INT_HAVE_UINT32_T 1
- #define KWIML_INT_HAVE_INT64_T 1
- #define KWIML_INT_HAVE_UINT64_T 1
- #define KWIML_INT_HAVE_INTPTR_T 1
- #define KWIML_INT_HAVE_UINTPTR_T 1
- # if defined(__cplusplus)
- # define KWIML_INT_detail_GLOBAL_NS(T) ::T
- # else
- # define KWIML_INT_detail_GLOBAL_NS(T) T
- # endif
- #endif
- #if defined(_AIX43) && !defined(_AIX50) && !defined(_AIX51)
- /* AIX 4.3 defines these incorrectly with % and no quotes. */
- # define KWIML_INT_BROKEN_PRId8 1
- # define KWIML_INT_BROKEN_SCNd8 1
- # define KWIML_INT_BROKEN_PRIi8 1
- # define KWIML_INT_BROKEN_SCNi8 1
- # define KWIML_INT_BROKEN_PRIo8 1
- # define KWIML_INT_BROKEN_SCNo8 1
- # define KWIML_INT_BROKEN_PRIu8 1
- # define KWIML_INT_BROKEN_SCNu8 1
- # define KWIML_INT_BROKEN_PRIx8 1
- # define KWIML_INT_BROKEN_SCNx8 1
- # define KWIML_INT_BROKEN_PRIX8 1
- # define KWIML_INT_BROKEN_PRId16 1
- # define KWIML_INT_BROKEN_SCNd16 1
- # define KWIML_INT_BROKEN_PRIi16 1
- # define KWIML_INT_BROKEN_SCNi16 1
- # define KWIML_INT_BROKEN_PRIo16 1
- # define KWIML_INT_BROKEN_SCNo16 1
- # define KWIML_INT_BROKEN_PRIu16 1
- # define KWIML_INT_BROKEN_SCNu16 1
- # define KWIML_INT_BROKEN_PRIx16 1
- # define KWIML_INT_BROKEN_SCNx16 1
- # define KWIML_INT_BROKEN_PRIX16 1
- # define KWIML_INT_BROKEN_PRId32 1
- # define KWIML_INT_BROKEN_SCNd32 1
- # define KWIML_INT_BROKEN_PRIi32 1
- # define KWIML_INT_BROKEN_SCNi32 1
- # define KWIML_INT_BROKEN_PRIo32 1
- # define KWIML_INT_BROKEN_SCNo32 1
- # define KWIML_INT_BROKEN_PRIu32 1
- # define KWIML_INT_BROKEN_SCNu32 1
- # define KWIML_INT_BROKEN_PRIx32 1
- # define KWIML_INT_BROKEN_SCNx32 1
- # define KWIML_INT_BROKEN_PRIX32 1
- # define KWIML_INT_BROKEN_PRId64 1
- # define KWIML_INT_BROKEN_SCNd64 1
- # define KWIML_INT_BROKEN_PRIi64 1
- # define KWIML_INT_BROKEN_SCNi64 1
- # define KWIML_INT_BROKEN_PRIo64 1
- # define KWIML_INT_BROKEN_SCNo64 1
- # define KWIML_INT_BROKEN_PRIu64 1
- # define KWIML_INT_BROKEN_SCNu64 1
- # define KWIML_INT_BROKEN_PRIx64 1
- # define KWIML_INT_BROKEN_SCNx64 1
- # define KWIML_INT_BROKEN_PRIX64 1
- # define KWIML_INT_BROKEN_PRIdPTR 1
- # define KWIML_INT_BROKEN_SCNdPTR 1
- # define KWIML_INT_BROKEN_PRIiPTR 1
- # define KWIML_INT_BROKEN_SCNiPTR 1
- # define KWIML_INT_BROKEN_PRIoPTR 1
- # define KWIML_INT_BROKEN_SCNoPTR 1
- # define KWIML_INT_BROKEN_PRIuPTR 1
- # define KWIML_INT_BROKEN_SCNuPTR 1
- # define KWIML_INT_BROKEN_PRIxPTR 1
- # define KWIML_INT_BROKEN_SCNxPTR 1
- # define KWIML_INT_BROKEN_PRIXPTR 1
- #endif
- #if defined(_MSC_VER) && _MSC_VER < 1900
- /* MSVC scanf seems broken on 8-bit sizes until 19.00 */
- # define KWIML_INT_BROKEN_SCNd8 1
- # define KWIML_INT_BROKEN_SCNi8 1
- # define KWIML_INT_BROKEN_SCNo8 1
- # define KWIML_INT_BROKEN_SCNu8 1
- # define KWIML_INT_BROKEN_SCNx8 1
- #endif
- #if (defined(__SUNPRO_C)||defined(__SUNPRO_CC)) && defined(_CHAR_IS_UNSIGNED)
- # define KWIML_INT_BROKEN_INT8_T 1 /* system type defined incorrectly */
- #elif defined(__BORLANDC__) && defined(_CHAR_UNSIGNED)
- # define KWIML_INT_BROKEN_INT8_T 1 /* system type defined incorrectly */
- #endif
- /*--------------------------------------------------------------------------*/
- #if !defined(KWIML_INT_int8_t)
- # if defined(KWIML_INT_HAVE_INT8_T) && !defined(KWIML_INT_BROKEN_INT8_T)
- # define KWIML_INT_int8_t KWIML_INT_detail_GLOBAL_NS(int8_t)
- # else
- # define KWIML_INT_int8_t signed char
- # endif
- #endif
- #if !defined(KWIML_INT_uint8_t)
- # if defined(KWIML_INT_HAVE_UINT8_T)
- # define KWIML_INT_uint8_t KWIML_INT_detail_GLOBAL_NS(uint8_t)
- # else
- # define KWIML_INT_uint8_t unsigned char
- # endif
- #endif
- #if defined(__INTEL_COMPILER)
- # if defined(_WIN32)
- # define KWIML_INT_private_NO_SCN8
- # endif
- #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
- # define KWIML_INT_private_NO_SCN8
- #elif defined(__BORLANDC__)
- # define KWIML_INT_private_NO_SCN8
- # define KWIML_INT_private_NO_SCN64
- #elif defined(_MSC_VER) && _MSC_VER < 1900
- # define KWIML_INT_private_NO_SCN8
- #elif defined(__WATCOMC__)
- # define KWIML_INT_private_NO_SCN8
- # elif defined(__hpux) /* HP runtime lacks support (any compiler) */
- # define KWIML_INT_private_NO_SCN8
- #endif
- /* 8-bit d, i */
- #if !defined(KWIML_INT_PRId8)
- # if defined(KWIML_INT_HAVE_INT8_T) && defined(PRId8) \
- && !defined(KWIML_INT_BROKEN_PRId8)
- # define KWIML_INT_PRId8 PRId8
- # else
- # define KWIML_INT_PRId8 "d"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNd8)
- # if defined(KWIML_INT_HAVE_INT8_T) && defined(SCNd8) \
- && !defined(KWIML_INT_BROKEN_SCNd8)
- # define KWIML_INT_SCNd8 SCNd8
- # elif !defined(KWIML_INT_private_NO_SCN8)
- # define KWIML_INT_SCNd8 "hhd"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIi8)
- # if defined(KWIML_INT_HAVE_INT8_T) && defined(PRIi8) \
- && !defined(KWIML_INT_BROKEN_PRIi8)
- # define KWIML_INT_PRIi8 PRIi8
- # else
- # define KWIML_INT_PRIi8 "i"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNi8)
- # if defined(KWIML_INT_HAVE_INT8_T) && defined(SCNi8) \
- && !defined(KWIML_INT_BROKEN_SCNi8)
- # define KWIML_INT_SCNi8 SCNi8
- # elif !defined(KWIML_INT_private_NO_SCN8)
- # define KWIML_INT_SCNi8 "hhi"
- # endif
- #endif
- /* 8-bit o, u, x, X */
- #if !defined(KWIML_INT_PRIo8)
- # if defined(KWIML_INT_HAVE_UINT8_T) && defined(PRIo8) \
- && !defined(KWIML_INT_BROKEN_PRIo8)
- # define KWIML_INT_PRIo8 PRIo8
- # else
- # define KWIML_INT_PRIo8 "o"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNo8)
- # if defined(KWIML_INT_HAVE_UINT8_T) && defined(SCNo8) \
- && !defined(KWIML_INT_BROKEN_SCNo8)
- # define KWIML_INT_SCNo8 SCNo8
- # elif !defined(KWIML_INT_private_NO_SCN8)
- # define KWIML_INT_SCNo8 "hho"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIu8)
- # if defined(KWIML_INT_HAVE_UINT8_T) && defined(PRIu8) \
- && !defined(KWIML_INT_BROKEN_PRIu8)
- # define KWIML_INT_PRIu8 PRIu8
- # else
- # define KWIML_INT_PRIu8 "u"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNu8)
- # if defined(KWIML_INT_HAVE_UINT8_T) && defined(SCNu8) \
- && !defined(KWIML_INT_BROKEN_SCNu8)
- # define KWIML_INT_SCNu8 SCNu8
- # elif !defined(KWIML_INT_private_NO_SCN8)
- # define KWIML_INT_SCNu8 "hhu"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIx8)
- # if defined(KWIML_INT_HAVE_UINT8_T) && defined(PRIx8) \
- && !defined(KWIML_INT_BROKEN_PRIx8)
- # define KWIML_INT_PRIx8 PRIx8
- # else
- # define KWIML_INT_PRIx8 "x"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNx8)
- # if defined(KWIML_INT_HAVE_UINT8_T) && defined(SCNx8) \
- && !defined(KWIML_INT_BROKEN_SCNx8)
- # define KWIML_INT_SCNx8 SCNx8
- # elif !defined(KWIML_INT_private_NO_SCN8)
- # define KWIML_INT_SCNx8 "hhx"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIX8)
- # if defined(KWIML_INT_HAVE_UINT8_T) && defined(PRIX8) \
- && !defined(KWIML_INT_BROKEN_PRIX8)
- # define KWIML_INT_PRIX8 PRIX8
- # else
- # define KWIML_INT_PRIX8 "X"
- # endif
- #endif
- /* 8-bit constants */
- #if !defined(KWIML_INT_INT8_C)
- # if defined(INT8_C) && !defined(KWIML_INT_BROKEN_INT8_C)
- # define KWIML_INT_INT8_C(c) INT8_C(c)
- # else
- # define KWIML_INT_INT8_C(c) c
- # endif
- #endif
- #if !defined(KWIML_INT_UINT8_C)
- # if defined(UINT8_C) && !defined(KWIML_INT_BROKEN_UINT8_C)
- # define KWIML_INT_UINT8_C(c) UINT8_C(c)
- # else
- # define KWIML_INT_UINT8_C(c) c ## u
- # endif
- #endif
- /*--------------------------------------------------------------------------*/
- #if !defined(KWIML_INT_int16_t)
- # if defined(KWIML_INT_HAVE_INT16_T)
- # define KWIML_INT_int16_t KWIML_INT_detail_GLOBAL_NS(int16_t)
- # else
- # define KWIML_INT_int16_t signed short
- # endif
- #endif
- #if !defined(KWIML_INT_uint16_t)
- # if defined(KWIML_INT_HAVE_UINT16_T)
- # define KWIML_INT_uint16_t KWIML_INT_detail_GLOBAL_NS(uint16_t)
- # else
- # define KWIML_INT_uint16_t unsigned short
- # endif
- #endif
- /* 16-bit d, i */
- #if !defined(KWIML_INT_PRId16)
- # if defined(KWIML_INT_HAVE_INT16_T) && defined(PRId16) \
- && !defined(KWIML_INT_BROKEN_PRId16)
- # define KWIML_INT_PRId16 PRId16
- # else
- # define KWIML_INT_PRId16 "d"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNd16)
- # if defined(KWIML_INT_HAVE_INT16_T) && defined(SCNd16) \
- && !defined(KWIML_INT_BROKEN_SCNd16)
- # define KWIML_INT_SCNd16 SCNd16
- # else
- # define KWIML_INT_SCNd16 "hd"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIi16)
- # if defined(KWIML_INT_HAVE_INT16_T) && defined(PRIi16) \
- && !defined(KWIML_INT_BROKEN_PRIi16)
- # define KWIML_INT_PRIi16 PRIi16
- # else
- # define KWIML_INT_PRIi16 "i"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNi16)
- # if defined(KWIML_INT_HAVE_INT16_T) && defined(SCNi16) \
- && !defined(KWIML_INT_BROKEN_SCNi16)
- # define KWIML_INT_SCNi16 SCNi16
- # else
- # define KWIML_INT_SCNi16 "hi"
- # endif
- #endif
- /* 16-bit o, u, x, X */
- #if !defined(KWIML_INT_PRIo16)
- # if defined(KWIML_INT_HAVE_UINT16_T) && defined(PRIo16) \
- && !defined(KWIML_INT_BROKEN_PRIo16)
- # define KWIML_INT_PRIo16 PRIo16
- # else
- # define KWIML_INT_PRIo16 "o"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNo16)
- # if defined(KWIML_INT_HAVE_UINT16_T) && defined(SCNo16) \
- && !defined(KWIML_INT_BROKEN_SCNo16)
- # define KWIML_INT_SCNo16 SCNo16
- # else
- # define KWIML_INT_SCNo16 "ho"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIu16)
- # if defined(KWIML_INT_HAVE_UINT16_T) && defined(PRIu16) \
- && !defined(KWIML_INT_BROKEN_PRIu16)
- # define KWIML_INT_PRIu16 PRIu16
- # else
- # define KWIML_INT_PRIu16 "u"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNu16)
- # if defined(KWIML_INT_HAVE_UINT16_T) && defined(SCNu16) \
- && !defined(KWIML_INT_BROKEN_SCNu16)
- # define KWIML_INT_SCNu16 SCNu16
- # else
- # define KWIML_INT_SCNu16 "hu"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIx16)
- # if defined(KWIML_INT_HAVE_UINT16_T) && defined(PRIx16) \
- && !defined(KWIML_INT_BROKEN_PRIx16)
- # define KWIML_INT_PRIx16 PRIx16
- # else
- # define KWIML_INT_PRIx16 "x"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNx16)
- # if defined(KWIML_INT_HAVE_UINT16_T) && defined(SCNx16) \
- && !defined(KWIML_INT_BROKEN_SCNx16)
- # define KWIML_INT_SCNx16 SCNx16
- # else
- # define KWIML_INT_SCNx16 "hx"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIX16)
- # if defined(KWIML_INT_HAVE_UINT16_T) && defined(PRIX16) \
- && !defined(KWIML_INT_BROKEN_PRIX16)
- # define KWIML_INT_PRIX16 PRIX16
- # else
- # define KWIML_INT_PRIX16 "X"
- # endif
- #endif
- /* 16-bit constants */
- #if !defined(KWIML_INT_INT16_C)
- # if defined(INT16_C) && !defined(KWIML_INT_BROKEN_INT16_C)
- # define KWIML_INT_INT16_C(c) INT16_C(c)
- # else
- # define KWIML_INT_INT16_C(c) c
- # endif
- #endif
- #if !defined(KWIML_INT_UINT16_C)
- # if defined(UINT16_C) && !defined(KWIML_INT_BROKEN_UINT16_C)
- # define KWIML_INT_UINT16_C(c) UINT16_C(c)
- # else
- # define KWIML_INT_UINT16_C(c) c ## u
- # endif
- #endif
- /*--------------------------------------------------------------------------*/
- #if !defined(KWIML_INT_int32_t)
- # if defined(KWIML_INT_HAVE_INT32_T)
- # define KWIML_INT_int32_t KWIML_INT_detail_GLOBAL_NS(int32_t)
- # else
- # define KWIML_INT_int32_t signed int
- # endif
- #endif
- #if !defined(KWIML_INT_uint32_t)
- # if defined(KWIML_INT_HAVE_UINT32_T)
- # define KWIML_INT_uint32_t KWIML_INT_detail_GLOBAL_NS(uint32_t)
- # else
- # define KWIML_INT_uint32_t unsigned int
- # endif
- #endif
- /* 32-bit d, i */
- #if !defined(KWIML_INT_PRId32)
- # if defined(KWIML_INT_HAVE_INT32_T) && defined(PRId32) \
- && !defined(KWIML_INT_BROKEN_PRId32)
- # define KWIML_INT_PRId32 PRId32
- # else
- # define KWIML_INT_PRId32 "d"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNd32)
- # if defined(KWIML_INT_HAVE_INT32_T) && defined(SCNd32) \
- && !defined(KWIML_INT_BROKEN_SCNd32)
- # define KWIML_INT_SCNd32 SCNd32
- # else
- # define KWIML_INT_SCNd32 "d"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIi32)
- # if defined(KWIML_INT_HAVE_INT32_T) && defined(PRIi32) \
- && !defined(KWIML_INT_BROKEN_PRIi32)
- # define KWIML_INT_PRIi32 PRIi32
- # else
- # define KWIML_INT_PRIi32 "i"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNi32)
- # if defined(KWIML_INT_HAVE_INT32_T) && defined(SCNi32) \
- && !defined(KWIML_INT_BROKEN_SCNi32)
- # define KWIML_INT_SCNi32 SCNi32
- # else
- # define KWIML_INT_SCNi32 "i"
- # endif
- #endif
- /* 32-bit o, u, x, X */
- #if !defined(KWIML_INT_PRIo32)
- # if defined(KWIML_INT_HAVE_UINT32_T) && defined(PRIo32) \
- && !defined(KWIML_INT_BROKEN_PRIo32)
- # define KWIML_INT_PRIo32 PRIo32
- # else
- # define KWIML_INT_PRIo32 "o"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNo32)
- # if defined(KWIML_INT_HAVE_UINT32_T) && defined(SCNo32) \
- && !defined(KWIML_INT_BROKEN_SCNo32)
- # define KWIML_INT_SCNo32 SCNo32
- # else
- # define KWIML_INT_SCNo32 "o"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIu32)
- # if defined(KWIML_INT_HAVE_UINT32_T) && defined(PRIu32) \
- && !defined(KWIML_INT_BROKEN_PRIu32)
- # define KWIML_INT_PRIu32 PRIu32
- # else
- # define KWIML_INT_PRIu32 "u"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNu32)
- # if defined(KWIML_INT_HAVE_UINT32_T) && defined(SCNu32) \
- && !defined(KWIML_INT_BROKEN_SCNu32)
- # define KWIML_INT_SCNu32 SCNu32
- # else
- # define KWIML_INT_SCNu32 "u"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIx32)
- # if defined(KWIML_INT_HAVE_UINT32_T) && defined(PRIx32) \
- && !defined(KWIML_INT_BROKEN_PRIx32)
- # define KWIML_INT_PRIx32 PRIx32
- # else
- # define KWIML_INT_PRIx32 "x"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNx32)
- # if defined(KWIML_INT_HAVE_UINT32_T) && defined(SCNx32) \
- && !defined(KWIML_INT_BROKEN_SCNx32)
- # define KWIML_INT_SCNx32 SCNx32
- # else
- # define KWIML_INT_SCNx32 "x"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIX32)
- # if defined(KWIML_INT_HAVE_UINT32_T) && defined(PRIX32) \
- && !defined(KWIML_INT_BROKEN_PRIX32)
- # define KWIML_INT_PRIX32 PRIX32
- # else
- # define KWIML_INT_PRIX32 "X"
- # endif
- #endif
- #if defined(__hpux) && defined(__GNUC__) && !defined(__LP64__) \
- && defined(__CONCAT__) && defined(__CONCAT_U__)
- /* Some HPs define UINT32_C incorrectly and break GNU. */
- # define KWIML_INT_BROKEN_UINT32_C 1
- #endif
- /* 32-bit constants */
- #if !defined(KWIML_INT_INT32_C)
- # if defined(INT32_C) && !defined(KWIML_INT_BROKEN_INT32_C)
- # define KWIML_INT_INT32_C(c) INT32_C(c)
- # else
- # define KWIML_INT_INT32_C(c) c
- # endif
- #endif
- #if !defined(KWIML_INT_UINT32_C)
- # if defined(UINT32_C) && !defined(KWIML_INT_BROKEN_UINT32_C)
- # define KWIML_INT_UINT32_C(c) UINT32_C(c)
- # else
- # define KWIML_INT_UINT32_C(c) c ## u
- # endif
- #endif
- /*--------------------------------------------------------------------------*/
- #if !defined(KWIML_INT_int64_t) && !defined(KWIML_INT_NO_INT64_T)
- # if defined(KWIML_INT_HAVE_INT64_T)
- # define KWIML_INT_int64_t KWIML_INT_detail_GLOBAL_NS(int64_t)
- # elif KWIML_ABI_SIZEOF_LONG == 8
- # define KWIML_INT_int64_t signed long
- # elif defined(KWIML_ABI_SIZEOF_LONG_LONG) && KWIML_ABI_SIZEOF_LONG_LONG == 8
- # define KWIML_INT_int64_t signed long long
- # elif defined(KWIML_ABI_SIZEOF___INT64)
- # define KWIML_INT_int64_t signed __int64
- # elif defined(KWIML_INT_NO_ERROR_INT64_T)
- # define KWIML_INT_NO_INT64_T
- # else
- # error "No type known for 'int64_t'."
- # endif
- #endif
- #if !defined(KWIML_INT_uint64_t) && !defined(KWIML_INT_NO_UINT64_T)
- # if defined(KWIML_INT_HAVE_UINT64_T)
- # define KWIML_INT_uint64_t KWIML_INT_detail_GLOBAL_NS(uint64_t)
- # elif KWIML_ABI_SIZEOF_LONG == 8
- # define KWIML_INT_uint64_t unsigned long
- # elif defined(KWIML_ABI_SIZEOF_LONG_LONG) && KWIML_ABI_SIZEOF_LONG_LONG == 8
- # define KWIML_INT_uint64_t unsigned long long
- # elif defined(KWIML_ABI_SIZEOF___INT64)
- # define KWIML_INT_uint64_t unsigned __int64
- # elif defined(KWIML_INT_NO_ERROR_UINT64_T)
- # define KWIML_INT_NO_UINT64_T
- # else
- # error "No type known for 'uint64_t'."
- # endif
- #endif
- #if defined(__INTEL_COMPILER)
- #elif defined(__BORLANDC__)
- # define KWIML_INT_private_NO_FMTLL /* type 'long long' but not 'll' format */
- # define KWIML_INT_BROKEN_INT64_C 1 /* system macro defined incorrectly */
- # define KWIML_INT_BROKEN_UINT64_C 1 /* system macro defined incorrectly */
- #elif defined(_MSC_VER) && _MSC_VER < 1400
- # define KWIML_INT_private_NO_FMTLL /* type 'long long' but not 'll' format */
- #endif
- #if !defined(KWIML_INT_detail_FMT64)
- # if KWIML_ABI_SIZEOF_LONG == 8
- # define KWIML_INT_detail_FMT64 "l"
- # elif defined(KWIML_ABI_SIZEOF_LONG_LONG) && KWIML_ABI_SIZEOF_LONG_LONG == 8
- # if !defined(KWIML_INT_private_NO_FMTLL)
- # define KWIML_INT_detail_FMT64 "ll"
- # else
- # define KWIML_INT_detail_FMT64 "I64"
- # endif
- # elif defined(KWIML_ABI_SIZEOF___INT64)
- # if defined(__BORLANDC__)
- # define KWIML_INT_detail_FMT64 "L"
- # else
- # define KWIML_INT_detail_FMT64 "I64"
- # endif
- # endif
- #endif
- #undef KWIML_INT_private_NO_FMTLL
- /* 64-bit d, i */
- #if !defined(KWIML_INT_PRId64)
- # if defined(KWIML_INT_HAVE_INT64_T) && defined(PRId64) \
- && !defined(KWIML_INT_BROKEN_PRId64)
- # define KWIML_INT_PRId64 PRId64
- # elif defined(KWIML_INT_detail_FMT64)
- # define KWIML_INT_PRId64 KWIML_INT_detail_FMT64 "d"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNd64)
- # if defined(KWIML_INT_HAVE_INT64_T) && defined(SCNd64) \
- && !defined(KWIML_INT_BROKEN_SCNd64)
- # define KWIML_INT_SCNd64 SCNd64
- # elif defined(KWIML_INT_detail_FMT64) && !defined(KWIML_INT_private_NO_SCN64)
- # define KWIML_INT_SCNd64 KWIML_INT_detail_FMT64 "d"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIi64)
- # if defined(KWIML_INT_HAVE_INT64_T) && defined(PRIi64) \
- && !defined(KWIML_INT_BROKEN_PRIi64)
- # define KWIML_INT_PRIi64 PRIi64
- # elif defined(KWIML_INT_detail_FMT64)
- # define KWIML_INT_PRIi64 KWIML_INT_detail_FMT64 "d"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNi64)
- # if defined(KWIML_INT_HAVE_INT64_T) && defined(SCNi64) \
- && !defined(KWIML_INT_BROKEN_SCNi64)
- # define KWIML_INT_SCNi64 SCNi64
- # elif defined(KWIML_INT_detail_FMT64) && !defined(KWIML_INT_private_NO_SCN64)
- # define KWIML_INT_SCNi64 KWIML_INT_detail_FMT64 "d"
- # endif
- #endif
- /* 64-bit o, u, x, X */
- #if !defined(KWIML_INT_PRIo64)
- # if defined(KWIML_INT_HAVE_UINT64_T) && defined(PRIo64) \
- && !defined(KWIML_INT_BROKEN_PRIo64)
- # define KWIML_INT_PRIo64 PRIo64
- # elif defined(KWIML_INT_detail_FMT64)
- # define KWIML_INT_PRIo64 KWIML_INT_detail_FMT64 "o"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNo64)
- # if defined(KWIML_INT_HAVE_UINT64_T) && defined(SCNo64) \
- && !defined(KWIML_INT_BROKEN_SCNo64)
- # define KWIML_INT_SCNo64 SCNo64
- # elif defined(KWIML_INT_detail_FMT64) && !defined(KWIML_INT_private_NO_SCN64)
- # define KWIML_INT_SCNo64 KWIML_INT_detail_FMT64 "o"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIu64)
- # if defined(KWIML_INT_HAVE_UINT64_T) && defined(PRIu64) \
- && !defined(KWIML_INT_BROKEN_PRIu64)
- # define KWIML_INT_PRIu64 PRIu64
- # elif defined(KWIML_INT_detail_FMT64)
- # define KWIML_INT_PRIu64 KWIML_INT_detail_FMT64 "u"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNu64)
- # if defined(KWIML_INT_HAVE_UINT64_T) && defined(SCNu64) \
- && !defined(KWIML_INT_BROKEN_SCNu64)
- # define KWIML_INT_SCNu64 SCNu64
- # elif defined(KWIML_INT_detail_FMT64) && !defined(KWIML_INT_private_NO_SCN64)
- # define KWIML_INT_SCNu64 KWIML_INT_detail_FMT64 "u"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIx64)
- # if defined(KWIML_INT_HAVE_UINT64_T) && defined(PRIx64) \
- && !defined(KWIML_INT_BROKEN_PRIx64)
- # define KWIML_INT_PRIx64 PRIx64
- # elif defined(KWIML_INT_detail_FMT64)
- # define KWIML_INT_PRIx64 KWIML_INT_detail_FMT64 "x"
- # endif
- #endif
- #if !defined(KWIML_INT_SCNx64)
- # if defined(KWIML_INT_HAVE_UINT64_T) && defined(SCNx64) \
- && !defined(KWIML_INT_BROKEN_SCNx64)
- # define KWIML_INT_SCNx64 SCNx64
- # elif defined(KWIML_INT_detail_FMT64) && !defined(KWIML_INT_private_NO_SCN64)
- # define KWIML_INT_SCNx64 KWIML_INT_detail_FMT64 "x"
- # endif
- #endif
- #if !defined(KWIML_INT_PRIX64)
- # if defined(KWIML_INT_HAVE_UINT64_T) && defined(PRIX64) \
- && !defined(KWIML_INT_BROKEN_PRIX64)
- # define KWIML_INT_PRIX64 PRIX64
- # elif defined(KWIML_INT_detail_FMT64)
- # define KWIML_INT_PRIX64 KWIML_INT_detail_FMT64 "X"
- # endif
- #endif
- /* 64-bit constants */
- #if !defined(KWIML_INT_INT64_C)
- # if defined(KWIML_INT_HAVE_INT64_T) && defined(INT64_C) \
- && !defined(KWIML_INT_BROKEN_INT64_C)
- # define KWIML_INT_INT64_C(c) INT64_C(c)
- # elif KWIML_ABI_SIZEOF_LONG == 8
- # define KWIML_INT_INT64_C(c) c ## l
- # elif defined(KWIML_ABI_SIZEOF_LONG_LONG) && KWIML_ABI_SIZEOF_LONG_LONG == 8
- # define KWIML_INT_INT64_C(c) c ## ll
- # elif defined(KWIML_ABI_SIZEOF___INT64)
- # define KWIML_INT_INT64_C(c) c ## i64
- # endif
- #endif
- #if !defined(KWIML_INT_UINT64_C)
- # if defined(KWIML_INT_HAVE_UINT64_T) && defined(UINT64_C) \
- && !defined(KWIML_INT_BROKEN_UINT64_C)
- # define KWIML_INT_UINT64_C(c) UINT64_C(c)
- # elif KWIML_ABI_SIZEOF_LONG == 8
- # define KWIML_INT_UINT64_C(c) c ## ul
- # elif defined(KWIML_ABI_SIZEOF_LONG_LONG) && KWIML_ABI_SIZEOF_LONG_LONG == 8
- # define KWIML_INT_UINT64_C(c) c ## ull
- # elif defined(KWIML_ABI_SIZEOF___INT64)
- # define KWIML_INT_UINT64_C(c) c ## ui64
- # endif
- #endif
- /*--------------------------------------------------------------------------*/
- #if !defined(KWIML_INT_intptr_t) && !defined(KWIML_INT_NO_INTPTR_T)
- # if defined(KWIML_INT_HAVE_INTPTR_T)
- # define KWIML_INT_intptr_t KWIML_INT_detail_GLOBAL_NS(intptr_t)
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_intptr_t KWIML_INT_int32_t
- # elif !defined(KWIML_INT_NO_INT64_T)
- # define KWIML_INT_intptr_t KWIML_INT_int64_t
- # elif defined(KWIML_INT_NO_ERROR_INTPTR_T)
- # define KWIML_INT_NO_INTPTR_T
- # else
- # error "No type known for 'intptr_t'."
- # endif
- #endif
- #if !defined(KWIML_INT_uintptr_t) && !defined(KWIML_INT_NO_UINTPTR_T)
- # if defined(KWIML_INT_HAVE_UINTPTR_T)
- # define KWIML_INT_uintptr_t KWIML_INT_detail_GLOBAL_NS(uintptr_t)
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_uintptr_t KWIML_INT_uint32_t
- # elif !defined(KWIML_INT_NO_UINT64_T)
- # define KWIML_INT_uintptr_t KWIML_INT_uint64_t
- # elif defined(KWIML_INT_NO_ERROR_UINTPTR_T)
- # define KWIML_INT_NO_UINTPTR_T
- # else
- # error "No type known for 'uintptr_t'."
- # endif
- #endif
- #if !defined(KWIML_INT_PRIdPTR)
- # if defined(KWIML_INT_HAVE_INTPTR_T) && defined(PRIdPTR) \
- && !defined(KWIML_INT_BROKEN_PRIdPTR)
- # define KWIML_INT_PRIdPTR PRIdPTR
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_PRIdPTR KWIML_INT_PRId32
- # elif !defined(KWIML_INT_NO_UINT64_T)
- # define KWIML_INT_PRIdPTR KWIML_INT_PRId64
- # endif
- #endif
- #if !defined(KWIML_INT_SCNdPTR)
- # if defined(KWIML_INT_HAVE_INTPTR_T) && defined(SCNdPTR) \
- && !defined(KWIML_INT_BROKEN_SCNdPTR)
- # define KWIML_INT_SCNdPTR SCNdPTR
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_SCNdPTR KWIML_INT_SCNd32
- # elif !defined(KWIML_INT_NO_UINT64_T)
- # define KWIML_INT_SCNdPTR KWIML_INT_SCNd64
- # endif
- #endif
- #if !defined(KWIML_INT_PRIiPTR)
- # if defined(KWIML_INT_HAVE_INTPTR_T) && defined(PRIiPTR) \
- && !defined(KWIML_INT_BROKEN_PRIiPTR)
- # define KWIML_INT_PRIiPTR PRIiPTR
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_PRIiPTR KWIML_INT_PRIi32
- # elif !defined(KWIML_INT_NO_UINT64_T)
- # define KWIML_INT_PRIiPTR KWIML_INT_PRIi64
- # endif
- #endif
- #if !defined(KWIML_INT_SCNiPTR)
- # if defined(KWIML_INT_HAVE_INTPTR_T) && defined(SCNiPTR) \
- && !defined(KWIML_INT_BROKEN_SCNiPTR)
- # define KWIML_INT_SCNiPTR SCNiPTR
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_SCNiPTR KWIML_INT_SCNi32
- # elif !defined(KWIML_INT_NO_UINT64_T)
- # define KWIML_INT_SCNiPTR KWIML_INT_SCNi64
- # endif
- #endif
- #if !defined(KWIML_INT_PRIoPTR)
- # if defined(KWIML_INT_HAVE_UINTPTR_T) && defined(PRIoPTR) \
- && !defined(KWIML_INT_BROKEN_PRIoPTR)
- # define KWIML_INT_PRIoPTR PRIoPTR
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_PRIoPTR KWIML_INT_PRIo32
- # elif !defined(KWIML_INT_NO_UINT64_T)
- # define KWIML_INT_PRIoPTR KWIML_INT_PRIo64
- # endif
- #endif
- #if !defined(KWIML_INT_SCNoPTR)
- # if defined(KWIML_INT_HAVE_UINTPTR_T) && defined(SCNoPTR) \
- && !defined(KWIML_INT_BROKEN_SCNoPTR)
- # define KWIML_INT_SCNoPTR SCNoPTR
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_SCNoPTR KWIML_INT_SCNo32
- # elif !defined(KWIML_INT_NO_UINT64_T)
- # define KWIML_INT_SCNoPTR KWIML_INT_SCNo64
- # endif
- #endif
- #if !defined(KWIML_INT_PRIuPTR)
- # if defined(KWIML_INT_HAVE_UINTPTR_T) && defined(PRIuPTR) \
- && !defined(KWIML_INT_BROKEN_PRIuPTR)
- # define KWIML_INT_PRIuPTR PRIuPTR
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_PRIuPTR KWIML_INT_PRIu32
- # elif !defined(KWIML_INT_NO_UINT64_T)
- # define KWIML_INT_PRIuPTR KWIML_INT_PRIu64
- # endif
- #endif
- #if !defined(KWIML_INT_SCNuPTR)
- # if defined(KWIML_INT_HAVE_UINTPTR_T) && defined(SCNuPTR) \
- && !defined(KWIML_INT_BROKEN_SCNuPTR)
- # define KWIML_INT_SCNuPTR SCNuPTR
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_SCNuPTR KWIML_INT_SCNu32
- # elif !defined(KWIML_INT_NO_UINT64_T)
- # define KWIML_INT_SCNuPTR KWIML_INT_SCNu64
- # endif
- #endif
- #if !defined(KWIML_INT_PRIxPTR)
- # if defined(KWIML_INT_HAVE_UINTPTR_T) && defined(PRIxPTR) \
- && !defined(KWIML_INT_BROKEN_PRIxPTR)
- # define KWIML_INT_PRIxPTR PRIxPTR
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_PRIxPTR KWIML_INT_PRIx32
- # elif !defined(KWIML_INT_NO_UINT64_T)
- # define KWIML_INT_PRIxPTR KWIML_INT_PRIx64
- # endif
- #endif
- #if !defined(KWIML_INT_SCNxPTR)
- # if defined(KWIML_INT_HAVE_UINTPTR_T) && defined(SCNxPTR) \
- && !defined(KWIML_INT_BROKEN_SCNxPTR)
- # define KWIML_INT_SCNxPTR SCNxPTR
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_SCNxPTR KWIML_INT_SCNx32
- # elif !defined(KWIML_INT_NO_UINT64_T)
- # define KWIML_INT_SCNxPTR KWIML_INT_SCNx64
- # endif
- #endif
- #if !defined(KWIML_INT_PRIXPTR)
- # if defined(KWIML_INT_HAVE_UINTPTR_T) && defined(PRIXPTR) \
- && !defined(KWIML_INT_BROKEN_PRIXPTR)
- # define KWIML_INT_PRIXPTR PRIXPTR
- # elif KWIML_ABI_SIZEOF_DATA_PTR == 4
- # define KWIML_INT_PRIXPTR KWIML_INT_PRIX32
- # elif !defined(KWIML_INT_NO_UINT64_T)
- # define KWIML_INT_PRIXPTR KWIML_INT_PRIX64
- # endif
- #endif
- #undef KWIML_INT_private_NO_SCN64
- #undef KWIML_INT_private_NO_SCN8
- #endif /* KWIML_INT_private_DO_DEFINE */
- /*--------------------------------------------------------------------------*/
- #ifdef KWIML_INT_private_DO_VERIFY
- #undef KWIML_INT_private_DO_VERIFY
- #if defined(_MSC_VER)
- # pragma warning (push)
- # pragma warning (disable:4309) /* static_cast trunction of constant value */
- # pragma warning (disable:4310) /* cast truncates constant value */
- #endif
- #if defined(__cplusplus) && !defined(__BORLANDC__)
- #define KWIML_INT_private_STATIC_CAST(t,v) static_cast<t>(v)
- #else
- #define KWIML_INT_private_STATIC_CAST(t,v) (t)(v)
- #endif
- #define KWIML_INT_private_VERIFY(n, x, y) KWIML_INT_private_VERIFY_0(KWIML_INT_private_VERSION, n, x, y)
- #define KWIML_INT_private_VERIFY_0(V, n, x, y) KWIML_INT_private_VERIFY_1(V, n, x, y)
- #define KWIML_INT_private_VERIFY_1(V, n, x, y) extern int (*n##_v##V)[x]; extern int (*n##_v##V)[y]
- #define KWIML_INT_private_VERIFY_BOOL(m, b) KWIML_INT_private_VERIFY(KWIML_INT_detail_VERIFY_##m, 2, (b)?2:3)
- #define KWIML_INT_private_VERIFY_TYPE(t, s) KWIML_INT_private_VERIFY(KWIML_INT_detail_VERIFY_##t, s, sizeof(t))
- #define KWIML_INT_private_VERIFY_SIGN(t, u, o) \
- KWIML_INT_private_VERIFY_BOOL(SIGN_##t, KWIML_INT_private_STATIC_CAST( \
- t, KWIML_INT_private_STATIC_CAST(u, 1) << ((sizeof(t)<<3)-1)) o 0)
- KWIML_INT_private_VERIFY_TYPE(KWIML_INT_int8_t, 1);
- KWIML_INT_private_VERIFY_TYPE(KWIML_INT_uint8_t, 1);
- KWIML_INT_private_VERIFY_TYPE(KWIML_INT_int16_t, 2);
- KWIML_INT_private_VERIFY_TYPE(KWIML_INT_uint16_t, 2);
- KWIML_INT_private_VERIFY_TYPE(KWIML_INT_int32_t, 4);
- KWIML_INT_private_VERIFY_TYPE(KWIML_INT_uint32_t, 4);
- #if !defined(KWIML_INT_NO_INT64_T)
- KWIML_INT_private_VERIFY_TYPE(KWIML_INT_int64_t, 8);
- #endif
- #if !defined(KWIML_INT_NO_UINT64_T)
- KWIML_INT_private_VERIFY_TYPE(KWIML_INT_uint64_t, 8);
- #endif
- #if !defined(KWIML_INT_NO_INTPTR_T)
- KWIML_INT_private_VERIFY_TYPE(KWIML_INT_intptr_t, sizeof(void*));
- #endif
- #if !defined(KWIML_INT_NO_UINTPTR_T)
- KWIML_INT_private_VERIFY_TYPE(KWIML_INT_uintptr_t, sizeof(void*));
- #endif
- KWIML_INT_private_VERIFY_SIGN(KWIML_INT_int8_t, KWIML_INT_uint8_t, <);
- KWIML_INT_private_VERIFY_SIGN(KWIML_INT_uint8_t, KWIML_INT_uint8_t, >);
- KWIML_INT_private_VERIFY_SIGN(KWIML_INT_int16_t, KWIML_INT_uint16_t, <);
- KWIML_INT_private_VERIFY_SIGN(KWIML_INT_uint16_t, KWIML_INT_uint16_t, >);
- KWIML_INT_private_VERIFY_SIGN(KWIML_INT_int32_t, KWIML_INT_uint32_t, <);
- KWIML_INT_private_VERIFY_SIGN(KWIML_INT_uint32_t, KWIML_INT_uint32_t, >);
- #if !defined(KWIML_INT_NO_INT64_T)
- KWIML_INT_private_VERIFY_SIGN(KWIML_INT_int64_t, KWIML_INT_uint64_t, <);
- #endif
- #if !defined(KWIML_INT_NO_UINT64_T)
- KWIML_INT_private_VERIFY_SIGN(KWIML_INT_uint64_t, KWIML_INT_uint64_t, >);
- #endif
- #if !defined(KWIML_INT_NO_INTPTR_T)
- KWIML_INT_private_VERIFY_SIGN(KWIML_INT_intptr_t, KWIML_INT_uintptr_t, <);
- #endif
- #if !defined(KWIML_INT_NO_UINTPTR_T)
- KWIML_INT_private_VERIFY_SIGN(KWIML_INT_uintptr_t, KWIML_INT_uintptr_t, >);
- #endif
- #undef KWIML_INT_private_VERIFY_SIGN
- #undef KWIML_INT_private_VERIFY_TYPE
- #undef KWIML_INT_private_VERIFY_BOOL
- #undef KWIML_INT_private_VERIFY_1
- #undef KWIML_INT_private_VERIFY_0
- #undef KWIML_INT_private_VERIFY
- #undef KWIML_INT_private_STATIC_CAST
- #if defined(_MSC_VER)
- # pragma warning (pop)
- #endif
- #endif /* KWIML_INT_private_DO_VERIFY */
- #undef KWIML_INT_private_VERSION
|