123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080 |
- /*============================================================================
- 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 */
- # define KWIML_INT_NO_INTTYPES_H 1
- #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(__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)
- # 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
|