Sorry, that was the wrong patch. Fixed patch incoming.
On Thu, May 29, 2014 at 04:20:41PM +0900, Mike Hommey wrote: > From: Mike Hommey <m...@glandium.org> > > --- > configure.ac | 4 + > include/msvc_compat/C99/inttypes.h | 313 > +++++++++++++++++++++++++++++++++++++ > include/msvc_compat/C99/stdbool.h | 16 ++ > include/msvc_compat/C99/stdint.h | 247 +++++++++++++++++++++++++++++ > include/msvc_compat/inttypes.h | 313 > ------------------------------------- > include/msvc_compat/stdbool.h | 16 -- > include/msvc_compat/stdint.h | 247 ----------------------------- > 7 files changed, 580 insertions(+), 576 deletions(-) > create mode 100644 include/msvc_compat/C99/inttypes.h > create mode 100644 include/msvc_compat/C99/stdbool.h > create mode 100644 include/msvc_compat/C99/stdint.h > delete mode 100644 include/msvc_compat/inttypes.h > delete mode 100644 include/msvc_compat/stdbool.h > delete mode 100644 include/msvc_compat/stdint.h > > diff --git a/configure.ac b/configure.ac > index 58f6289..0d83ab9 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -155,6 +155,10 @@ if test "x${ac_cv_big_endian}" = "x1" ; then > AC_DEFINE_UNQUOTED([JEMALLOC_BIG_ENDIAN], [ ]) > fi > > +if test "x$je_cv_msvc" = "xyes" -a "x${ac_cv_header_inttypes_h}" = "x"; then > + CPPFLAGS="$CPPFLAGS -I${srcroot}/include/msvc_compat" > +fi > + > AC_CHECK_SIZEOF([void *]) > if test "x${ac_cv_sizeof_void_p}" = "x8" ; then > LG_SIZEOF_PTR=3 > diff --git a/include/msvc_compat/C99/inttypes.h > b/include/msvc_compat/C99/inttypes.h > new file mode 100644 > index 0000000..a4e6b75 > --- /dev/null > +++ b/include/msvc_compat/C99/inttypes.h > @@ -0,0 +1,313 @@ > +// ISO C9x compliant inttypes.h for Microsoft Visual Studio > +// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 > +// > +// Copyright (c) 2006 Alexander Chemeris > +// > +// Redistribution and use in source and binary forms, with or without > +// modification, are permitted provided that the following conditions are > met: > +// > +// 1. Redistributions of source code must retain the above copyright > notice, > +// this list of conditions and the following disclaimer. > +// > +// 2. 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. > +// > +// 3. The name of the author may be used to endorse or promote products > +// derived from this software without specific prior written permission. > +// > +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. > +// > +/////////////////////////////////////////////////////////////////////////////// > + > +#ifndef _MSC_VER // [ > +#error "Use this header only with Microsoft Visual C++ compilers!" > +#endif // _MSC_VER ] > + > +#ifndef _MSC_INTTYPES_H_ // [ > +#define _MSC_INTTYPES_H_ > + > +#if _MSC_VER > 1000 > +#pragma once > +#endif > + > +#include "stdint.h" > + > +// 7.8 Format conversion of integer types > + > +typedef struct { > + intmax_t quot; > + intmax_t rem; > +} imaxdiv_t; > + > +// 7.8.1 Macros for format specifiers > + > +#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [ See > footnote 185 at page 198 > + > +#ifdef _WIN64 > +# define __PRI64_PREFIX "l" > +# define __PRIPTR_PREFIX "l" > +#else > +# define __PRI64_PREFIX "ll" > +# define __PRIPTR_PREFIX > +#endif > + > +// The fprintf macros for signed integers are: > +#define PRId8 "d" > +#define PRIi8 "i" > +#define PRIdLEAST8 "d" > +#define PRIiLEAST8 "i" > +#define PRIdFAST8 "d" > +#define PRIiFAST8 "i" > + > +#define PRId16 "hd" > +#define PRIi16 "hi" > +#define PRIdLEAST16 "hd" > +#define PRIiLEAST16 "hi" > +#define PRIdFAST16 "hd" > +#define PRIiFAST16 "hi" > + > +#define PRId32 "d" > +#define PRIi32 "i" > +#define PRIdLEAST32 "d" > +#define PRIiLEAST32 "i" > +#define PRIdFAST32 "d" > +#define PRIiFAST32 "i" > + > +#define PRId64 __PRI64_PREFIX "d" > +#define PRIi64 __PRI64_PREFIX "i" > +#define PRIdLEAST64 __PRI64_PREFIX "d" > +#define PRIiLEAST64 __PRI64_PREFIX "i" > +#define PRIdFAST64 __PRI64_PREFIX "d" > +#define PRIiFAST64 __PRI64_PREFIX "i" > + > +#define PRIdMAX __PRI64_PREFIX "d" > +#define PRIiMAX __PRI64_PREFIX "i" > + > +#define PRIdPTR __PRIPTR_PREFIX "d" > +#define PRIiPTR __PRIPTR_PREFIX "i" > + > +// The fprintf macros for unsigned integers are: > +#define PRIo8 "o" > +#define PRIu8 "u" > +#define PRIx8 "x" > +#define PRIX8 "X" > +#define PRIoLEAST8 "o" > +#define PRIuLEAST8 "u" > +#define PRIxLEAST8 "x" > +#define PRIXLEAST8 "X" > +#define PRIoFAST8 "o" > +#define PRIuFAST8 "u" > +#define PRIxFAST8 "x" > +#define PRIXFAST8 "X" > + > +#define PRIo16 "ho" > +#define PRIu16 "hu" > +#define PRIx16 "hx" > +#define PRIX16 "hX" > +#define PRIoLEAST16 "ho" > +#define PRIuLEAST16 "hu" > +#define PRIxLEAST16 "hx" > +#define PRIXLEAST16 "hX" > +#define PRIoFAST16 "ho" > +#define PRIuFAST16 "hu" > +#define PRIxFAST16 "hx" > +#define PRIXFAST16 "hX" > + > +#define PRIo32 "o" > +#define PRIu32 "u" > +#define PRIx32 "x" > +#define PRIX32 "X" > +#define PRIoLEAST32 "o" > +#define PRIuLEAST32 "u" > +#define PRIxLEAST32 "x" > +#define PRIXLEAST32 "X" > +#define PRIoFAST32 "o" > +#define PRIuFAST32 "u" > +#define PRIxFAST32 "x" > +#define PRIXFAST32 "X" > + > +#define PRIo64 __PRI64_PREFIX "o" > +#define PRIu64 __PRI64_PREFIX "u" > +#define PRIx64 __PRI64_PREFIX "x" > +#define PRIX64 __PRI64_PREFIX "X" > +#define PRIoLEAST64 __PRI64_PREFIX "o" > +#define PRIuLEAST64 __PRI64_PREFIX "u" > +#define PRIxLEAST64 __PRI64_PREFIX "x" > +#define PRIXLEAST64 __PRI64_PREFIX "X" > +#define PRIoFAST64 __PRI64_PREFIX "o" > +#define PRIuFAST64 __PRI64_PREFIX "u" > +#define PRIxFAST64 __PRI64_PREFIX "x" > +#define PRIXFAST64 __PRI64_PREFIX "X" > + > +#define PRIoMAX __PRI64_PREFIX "o" > +#define PRIuMAX __PRI64_PREFIX "u" > +#define PRIxMAX __PRI64_PREFIX "x" > +#define PRIXMAX __PRI64_PREFIX "X" > + > +#define PRIoPTR __PRIPTR_PREFIX "o" > +#define PRIuPTR __PRIPTR_PREFIX "u" > +#define PRIxPTR __PRIPTR_PREFIX "x" > +#define PRIXPTR __PRIPTR_PREFIX "X" > + > +// The fscanf macros for signed integers are: > +#define SCNd8 "d" > +#define SCNi8 "i" > +#define SCNdLEAST8 "d" > +#define SCNiLEAST8 "i" > +#define SCNdFAST8 "d" > +#define SCNiFAST8 "i" > + > +#define SCNd16 "hd" > +#define SCNi16 "hi" > +#define SCNdLEAST16 "hd" > +#define SCNiLEAST16 "hi" > +#define SCNdFAST16 "hd" > +#define SCNiFAST16 "hi" > + > +#define SCNd32 "ld" > +#define SCNi32 "li" > +#define SCNdLEAST32 "ld" > +#define SCNiLEAST32 "li" > +#define SCNdFAST32 "ld" > +#define SCNiFAST32 "li" > + > +#define SCNd64 "I64d" > +#define SCNi64 "I64i" > +#define SCNdLEAST64 "I64d" > +#define SCNiLEAST64 "I64i" > +#define SCNdFAST64 "I64d" > +#define SCNiFAST64 "I64i" > + > +#define SCNdMAX "I64d" > +#define SCNiMAX "I64i" > + > +#ifdef _WIN64 // [ > +# define SCNdPTR "I64d" > +# define SCNiPTR "I64i" > +#else // _WIN64 ][ > +# define SCNdPTR "ld" > +# define SCNiPTR "li" > +#endif // _WIN64 ] > + > +// The fscanf macros for unsigned integers are: > +#define SCNo8 "o" > +#define SCNu8 "u" > +#define SCNx8 "x" > +#define SCNX8 "X" > +#define SCNoLEAST8 "o" > +#define SCNuLEAST8 "u" > +#define SCNxLEAST8 "x" > +#define SCNXLEAST8 "X" > +#define SCNoFAST8 "o" > +#define SCNuFAST8 "u" > +#define SCNxFAST8 "x" > +#define SCNXFAST8 "X" > + > +#define SCNo16 "ho" > +#define SCNu16 "hu" > +#define SCNx16 "hx" > +#define SCNX16 "hX" > +#define SCNoLEAST16 "ho" > +#define SCNuLEAST16 "hu" > +#define SCNxLEAST16 "hx" > +#define SCNXLEAST16 "hX" > +#define SCNoFAST16 "ho" > +#define SCNuFAST16 "hu" > +#define SCNxFAST16 "hx" > +#define SCNXFAST16 "hX" > + > +#define SCNo32 "lo" > +#define SCNu32 "lu" > +#define SCNx32 "lx" > +#define SCNX32 "lX" > +#define SCNoLEAST32 "lo" > +#define SCNuLEAST32 "lu" > +#define SCNxLEAST32 "lx" > +#define SCNXLEAST32 "lX" > +#define SCNoFAST32 "lo" > +#define SCNuFAST32 "lu" > +#define SCNxFAST32 "lx" > +#define SCNXFAST32 "lX" > + > +#define SCNo64 "I64o" > +#define SCNu64 "I64u" > +#define SCNx64 "I64x" > +#define SCNX64 "I64X" > +#define SCNoLEAST64 "I64o" > +#define SCNuLEAST64 "I64u" > +#define SCNxLEAST64 "I64x" > +#define SCNXLEAST64 "I64X" > +#define SCNoFAST64 "I64o" > +#define SCNuFAST64 "I64u" > +#define SCNxFAST64 "I64x" > +#define SCNXFAST64 "I64X" > + > +#define SCNoMAX "I64o" > +#define SCNuMAX "I64u" > +#define SCNxMAX "I64x" > +#define SCNXMAX "I64X" > + > +#ifdef _WIN64 // [ > +# define SCNoPTR "I64o" > +# define SCNuPTR "I64u" > +# define SCNxPTR "I64x" > +# define SCNXPTR "I64X" > +#else // _WIN64 ][ > +# define SCNoPTR "lo" > +# define SCNuPTR "lu" > +# define SCNxPTR "lx" > +# define SCNXPTR "lX" > +#endif // _WIN64 ] > + > +#endif // __STDC_FORMAT_MACROS ] > + > +// 7.8.2 Functions for greatest-width integer types > + > +// 7.8.2.1 The imaxabs function > +#define imaxabs _abs64 > + > +// 7.8.2.2 The imaxdiv function > + > +// This is modified version of div() function from Microsoft's div.c found > +// in %MSVC.NET%\crt\src\div.c > +#ifdef STATIC_IMAXDIV // [ > +static > +#else // STATIC_IMAXDIV ][ > +_inline > +#endif // STATIC_IMAXDIV ] > +imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom) > +{ > + imaxdiv_t result; > + > + result.quot = numer / denom; > + result.rem = numer % denom; > + > + if (numer < 0 && result.rem > 0) { > + // did division wrong; must fix up > + ++result.quot; > + result.rem -= denom; > + } > + > + return result; > +} > + > +// 7.8.2.3 The strtoimax and strtoumax functions > +#define strtoimax _strtoi64 > +#define strtoumax _strtoui64 > + > +// 7.8.2.4 The wcstoimax and wcstoumax functions > +#define wcstoimax _wcstoi64 > +#define wcstoumax _wcstoui64 > + > + > +#endif // _MSC_INTTYPES_H_ ] > diff --git a/include/msvc_compat/C99/stdbool.h > b/include/msvc_compat/C99/stdbool.h > new file mode 100644 > index 0000000..da9ee8b > --- /dev/null > +++ b/include/msvc_compat/C99/stdbool.h > @@ -0,0 +1,16 @@ > +#ifndef stdbool_h > +#define stdbool_h > + > +#include <wtypes.h> > + > +/* MSVC doesn't define _Bool or bool in C, but does have BOOL */ > +/* Note this doesn't pass autoconf's test because (bool) 0.5 != true */ > +typedef BOOL _Bool; > + > +#define bool _Bool > +#define true 1 > +#define false 0 > + > +#define __bool_true_false_are_defined 1 > + > +#endif /* stdbool_h */ > diff --git a/include/msvc_compat/C99/stdint.h > b/include/msvc_compat/C99/stdint.h > new file mode 100644 > index 0000000..d02608a > --- /dev/null > +++ b/include/msvc_compat/C99/stdint.h > @@ -0,0 +1,247 @@ > +// ISO C9x compliant stdint.h for Microsoft Visual Studio > +// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 > +// > +// Copyright (c) 2006-2008 Alexander Chemeris > +// > +// Redistribution and use in source and binary forms, with or without > +// modification, are permitted provided that the following conditions are > met: > +// > +// 1. Redistributions of source code must retain the above copyright > notice, > +// this list of conditions and the following disclaimer. > +// > +// 2. 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. > +// > +// 3. The name of the author may be used to endorse or promote products > +// derived from this software without specific prior written permission. > +// > +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. > +// > +/////////////////////////////////////////////////////////////////////////////// > + > +#ifndef _MSC_VER // [ > +#error "Use this header only with Microsoft Visual C++ compilers!" > +#endif // _MSC_VER ] > + > +#ifndef _MSC_STDINT_H_ // [ > +#define _MSC_STDINT_H_ > + > +#if _MSC_VER > 1000 > +#pragma once > +#endif > + > +#include <limits.h> > + > +// For Visual Studio 6 in C++ mode and for many Visual Studio versions when > +// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}' > +// or compiler give many errors like this: > +// error C2733: second C linkage of overloaded function 'wmemchr' not > allowed > +#ifdef __cplusplus > +extern "C" { > +#endif > +# include <wchar.h> > +#ifdef __cplusplus > +} > +#endif > + > +// Define _W64 macros to mark types changing their size, like intptr_t. > +#ifndef _W64 > +# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER > >= 1300 > +# define _W64 __w64 > +# else > +# define _W64 > +# endif > +#endif > + > + > +// 7.18.1 Integer types > + > +// 7.18.1.1 Exact-width integer types > + > +// Visual Studio 6 and Embedded Visual C++ 4 doesn't > +// realize that, e.g. char has the same size as __int8 > +// so we give up on __intX for them. > +#if (_MSC_VER < 1300) > + typedef signed char int8_t; > + typedef signed short int16_t; > + typedef signed int int32_t; > + typedef unsigned char uint8_t; > + typedef unsigned short uint16_t; > + typedef unsigned int uint32_t; > +#else > + typedef signed __int8 int8_t; > + typedef signed __int16 int16_t; > + typedef signed __int32 int32_t; > + typedef unsigned __int8 uint8_t; > + typedef unsigned __int16 uint16_t; > + typedef unsigned __int32 uint32_t; > +#endif > +typedef signed __int64 int64_t; > +typedef unsigned __int64 uint64_t; > + > + > +// 7.18.1.2 Minimum-width integer types > +typedef int8_t int_least8_t; > +typedef int16_t int_least16_t; > +typedef int32_t int_least32_t; > +typedef int64_t int_least64_t; > +typedef uint8_t uint_least8_t; > +typedef uint16_t uint_least16_t; > +typedef uint32_t uint_least32_t; > +typedef uint64_t uint_least64_t; > + > +// 7.18.1.3 Fastest minimum-width integer types > +typedef int8_t int_fast8_t; > +typedef int16_t int_fast16_t; > +typedef int32_t int_fast32_t; > +typedef int64_t int_fast64_t; > +typedef uint8_t uint_fast8_t; > +typedef uint16_t uint_fast16_t; > +typedef uint32_t uint_fast32_t; > +typedef uint64_t uint_fast64_t; > + > +// 7.18.1.4 Integer types capable of holding object pointers > +#ifdef _WIN64 // [ > + typedef signed __int64 intptr_t; > + typedef unsigned __int64 uintptr_t; > +#else // _WIN64 ][ > + typedef _W64 signed int intptr_t; > + typedef _W64 unsigned int uintptr_t; > +#endif // _WIN64 ] > + > +// 7.18.1.5 Greatest-width integer types > +typedef int64_t intmax_t; > +typedef uint64_t uintmax_t; > + > + > +// 7.18.2 Limits of specified-width integer types > + > +#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See > footnote 220 at page 257 and footnote 221 at page 259 > + > +// 7.18.2.1 Limits of exact-width integer types > +#define INT8_MIN ((int8_t)_I8_MIN) > +#define INT8_MAX _I8_MAX > +#define INT16_MIN ((int16_t)_I16_MIN) > +#define INT16_MAX _I16_MAX > +#define INT32_MIN ((int32_t)_I32_MIN) > +#define INT32_MAX _I32_MAX > +#define INT64_MIN ((int64_t)_I64_MIN) > +#define INT64_MAX _I64_MAX > +#define UINT8_MAX _UI8_MAX > +#define UINT16_MAX _UI16_MAX > +#define UINT32_MAX _UI32_MAX > +#define UINT64_MAX _UI64_MAX > + > +// 7.18.2.2 Limits of minimum-width integer types > +#define INT_LEAST8_MIN INT8_MIN > +#define INT_LEAST8_MAX INT8_MAX > +#define INT_LEAST16_MIN INT16_MIN > +#define INT_LEAST16_MAX INT16_MAX > +#define INT_LEAST32_MIN INT32_MIN > +#define INT_LEAST32_MAX INT32_MAX > +#define INT_LEAST64_MIN INT64_MIN > +#define INT_LEAST64_MAX INT64_MAX > +#define UINT_LEAST8_MAX UINT8_MAX > +#define UINT_LEAST16_MAX UINT16_MAX > +#define UINT_LEAST32_MAX UINT32_MAX > +#define UINT_LEAST64_MAX UINT64_MAX > + > +// 7.18.2.3 Limits of fastest minimum-width integer types > +#define INT_FAST8_MIN INT8_MIN > +#define INT_FAST8_MAX INT8_MAX > +#define INT_FAST16_MIN INT16_MIN > +#define INT_FAST16_MAX INT16_MAX > +#define INT_FAST32_MIN INT32_MIN > +#define INT_FAST32_MAX INT32_MAX > +#define INT_FAST64_MIN INT64_MIN > +#define INT_FAST64_MAX INT64_MAX > +#define UINT_FAST8_MAX UINT8_MAX > +#define UINT_FAST16_MAX UINT16_MAX > +#define UINT_FAST32_MAX UINT32_MAX > +#define UINT_FAST64_MAX UINT64_MAX > + > +// 7.18.2.4 Limits of integer types capable of holding object pointers > +#ifdef _WIN64 // [ > +# define INTPTR_MIN INT64_MIN > +# define INTPTR_MAX INT64_MAX > +# define UINTPTR_MAX UINT64_MAX > +#else // _WIN64 ][ > +# define INTPTR_MIN INT32_MIN > +# define INTPTR_MAX INT32_MAX > +# define UINTPTR_MAX UINT32_MAX > +#endif // _WIN64 ] > + > +// 7.18.2.5 Limits of greatest-width integer types > +#define INTMAX_MIN INT64_MIN > +#define INTMAX_MAX INT64_MAX > +#define UINTMAX_MAX UINT64_MAX > + > +// 7.18.3 Limits of other integer types > + > +#ifdef _WIN64 // [ > +# define PTRDIFF_MIN _I64_MIN > +# define PTRDIFF_MAX _I64_MAX > +#else // _WIN64 ][ > +# define PTRDIFF_MIN _I32_MIN > +# define PTRDIFF_MAX _I32_MAX > +#endif // _WIN64 ] > + > +#define SIG_ATOMIC_MIN INT_MIN > +#define SIG_ATOMIC_MAX INT_MAX > + > +#ifndef SIZE_MAX // [ > +# ifdef _WIN64 // [ > +# define SIZE_MAX _UI64_MAX > +# else // _WIN64 ][ > +# define SIZE_MAX _UI32_MAX > +# endif // _WIN64 ] > +#endif // SIZE_MAX ] > + > +// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h> > +#ifndef WCHAR_MIN // [ > +# define WCHAR_MIN 0 > +#endif // WCHAR_MIN ] > +#ifndef WCHAR_MAX // [ > +# define WCHAR_MAX _UI16_MAX > +#endif // WCHAR_MAX ] > + > +#define WINT_MIN 0 > +#define WINT_MAX _UI16_MAX > + > +#endif // __STDC_LIMIT_MACROS ] > + > + > +// 7.18.4 Limits of other integer types > + > +#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See > footnote 224 at page 260 > + > +// 7.18.4.1 Macros for minimum-width integer constants > + > +#define INT8_C(val) val##i8 > +#define INT16_C(val) val##i16 > +#define INT32_C(val) val##i32 > +#define INT64_C(val) val##i64 > + > +#define UINT8_C(val) val##ui8 > +#define UINT16_C(val) val##ui16 > +#define UINT32_C(val) val##ui32 > +#define UINT64_C(val) val##ui64 > + > +// 7.18.4.2 Macros for greatest-width integer constants > +#define INTMAX_C INT64_C > +#define UINTMAX_C UINT64_C > + > +#endif // __STDC_CONSTANT_MACROS ] > + > + > +#endif // _MSC_STDINT_H_ ] > diff --git a/include/msvc_compat/inttypes.h b/include/msvc_compat/inttypes.h > deleted file mode 100644 > index a4e6b75..0000000 > --- a/include/msvc_compat/inttypes.h > +++ /dev/null > @@ -1,313 +0,0 @@ > -// ISO C9x compliant inttypes.h for Microsoft Visual Studio > -// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 > -// > -// Copyright (c) 2006 Alexander Chemeris > -// > -// Redistribution and use in source and binary forms, with or without > -// modification, are permitted provided that the following conditions are > met: > -// > -// 1. Redistributions of source code must retain the above copyright > notice, > -// this list of conditions and the following disclaimer. > -// > -// 2. 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. > -// > -// 3. The name of the author may be used to endorse or promote products > -// derived from this software without specific prior written permission. > -// > -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. > -// > -/////////////////////////////////////////////////////////////////////////////// > - > -#ifndef _MSC_VER // [ > -#error "Use this header only with Microsoft Visual C++ compilers!" > -#endif // _MSC_VER ] > - > -#ifndef _MSC_INTTYPES_H_ // [ > -#define _MSC_INTTYPES_H_ > - > -#if _MSC_VER > 1000 > -#pragma once > -#endif > - > -#include "stdint.h" > - > -// 7.8 Format conversion of integer types > - > -typedef struct { > - intmax_t quot; > - intmax_t rem; > -} imaxdiv_t; > - > -// 7.8.1 Macros for format specifiers > - > -#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [ See > footnote 185 at page 198 > - > -#ifdef _WIN64 > -# define __PRI64_PREFIX "l" > -# define __PRIPTR_PREFIX "l" > -#else > -# define __PRI64_PREFIX "ll" > -# define __PRIPTR_PREFIX > -#endif > - > -// The fprintf macros for signed integers are: > -#define PRId8 "d" > -#define PRIi8 "i" > -#define PRIdLEAST8 "d" > -#define PRIiLEAST8 "i" > -#define PRIdFAST8 "d" > -#define PRIiFAST8 "i" > - > -#define PRId16 "hd" > -#define PRIi16 "hi" > -#define PRIdLEAST16 "hd" > -#define PRIiLEAST16 "hi" > -#define PRIdFAST16 "hd" > -#define PRIiFAST16 "hi" > - > -#define PRId32 "d" > -#define PRIi32 "i" > -#define PRIdLEAST32 "d" > -#define PRIiLEAST32 "i" > -#define PRIdFAST32 "d" > -#define PRIiFAST32 "i" > - > -#define PRId64 __PRI64_PREFIX "d" > -#define PRIi64 __PRI64_PREFIX "i" > -#define PRIdLEAST64 __PRI64_PREFIX "d" > -#define PRIiLEAST64 __PRI64_PREFIX "i" > -#define PRIdFAST64 __PRI64_PREFIX "d" > -#define PRIiFAST64 __PRI64_PREFIX "i" > - > -#define PRIdMAX __PRI64_PREFIX "d" > -#define PRIiMAX __PRI64_PREFIX "i" > - > -#define PRIdPTR __PRIPTR_PREFIX "d" > -#define PRIiPTR __PRIPTR_PREFIX "i" > - > -// The fprintf macros for unsigned integers are: > -#define PRIo8 "o" > -#define PRIu8 "u" > -#define PRIx8 "x" > -#define PRIX8 "X" > -#define PRIoLEAST8 "o" > -#define PRIuLEAST8 "u" > -#define PRIxLEAST8 "x" > -#define PRIXLEAST8 "X" > -#define PRIoFAST8 "o" > -#define PRIuFAST8 "u" > -#define PRIxFAST8 "x" > -#define PRIXFAST8 "X" > - > -#define PRIo16 "ho" > -#define PRIu16 "hu" > -#define PRIx16 "hx" > -#define PRIX16 "hX" > -#define PRIoLEAST16 "ho" > -#define PRIuLEAST16 "hu" > -#define PRIxLEAST16 "hx" > -#define PRIXLEAST16 "hX" > -#define PRIoFAST16 "ho" > -#define PRIuFAST16 "hu" > -#define PRIxFAST16 "hx" > -#define PRIXFAST16 "hX" > - > -#define PRIo32 "o" > -#define PRIu32 "u" > -#define PRIx32 "x" > -#define PRIX32 "X" > -#define PRIoLEAST32 "o" > -#define PRIuLEAST32 "u" > -#define PRIxLEAST32 "x" > -#define PRIXLEAST32 "X" > -#define PRIoFAST32 "o" > -#define PRIuFAST32 "u" > -#define PRIxFAST32 "x" > -#define PRIXFAST32 "X" > - > -#define PRIo64 __PRI64_PREFIX "o" > -#define PRIu64 __PRI64_PREFIX "u" > -#define PRIx64 __PRI64_PREFIX "x" > -#define PRIX64 __PRI64_PREFIX "X" > -#define PRIoLEAST64 __PRI64_PREFIX "o" > -#define PRIuLEAST64 __PRI64_PREFIX "u" > -#define PRIxLEAST64 __PRI64_PREFIX "x" > -#define PRIXLEAST64 __PRI64_PREFIX "X" > -#define PRIoFAST64 __PRI64_PREFIX "o" > -#define PRIuFAST64 __PRI64_PREFIX "u" > -#define PRIxFAST64 __PRI64_PREFIX "x" > -#define PRIXFAST64 __PRI64_PREFIX "X" > - > -#define PRIoMAX __PRI64_PREFIX "o" > -#define PRIuMAX __PRI64_PREFIX "u" > -#define PRIxMAX __PRI64_PREFIX "x" > -#define PRIXMAX __PRI64_PREFIX "X" > - > -#define PRIoPTR __PRIPTR_PREFIX "o" > -#define PRIuPTR __PRIPTR_PREFIX "u" > -#define PRIxPTR __PRIPTR_PREFIX "x" > -#define PRIXPTR __PRIPTR_PREFIX "X" > - > -// The fscanf macros for signed integers are: > -#define SCNd8 "d" > -#define SCNi8 "i" > -#define SCNdLEAST8 "d" > -#define SCNiLEAST8 "i" > -#define SCNdFAST8 "d" > -#define SCNiFAST8 "i" > - > -#define SCNd16 "hd" > -#define SCNi16 "hi" > -#define SCNdLEAST16 "hd" > -#define SCNiLEAST16 "hi" > -#define SCNdFAST16 "hd" > -#define SCNiFAST16 "hi" > - > -#define SCNd32 "ld" > -#define SCNi32 "li" > -#define SCNdLEAST32 "ld" > -#define SCNiLEAST32 "li" > -#define SCNdFAST32 "ld" > -#define SCNiFAST32 "li" > - > -#define SCNd64 "I64d" > -#define SCNi64 "I64i" > -#define SCNdLEAST64 "I64d" > -#define SCNiLEAST64 "I64i" > -#define SCNdFAST64 "I64d" > -#define SCNiFAST64 "I64i" > - > -#define SCNdMAX "I64d" > -#define SCNiMAX "I64i" > - > -#ifdef _WIN64 // [ > -# define SCNdPTR "I64d" > -# define SCNiPTR "I64i" > -#else // _WIN64 ][ > -# define SCNdPTR "ld" > -# define SCNiPTR "li" > -#endif // _WIN64 ] > - > -// The fscanf macros for unsigned integers are: > -#define SCNo8 "o" > -#define SCNu8 "u" > -#define SCNx8 "x" > -#define SCNX8 "X" > -#define SCNoLEAST8 "o" > -#define SCNuLEAST8 "u" > -#define SCNxLEAST8 "x" > -#define SCNXLEAST8 "X" > -#define SCNoFAST8 "o" > -#define SCNuFAST8 "u" > -#define SCNxFAST8 "x" > -#define SCNXFAST8 "X" > - > -#define SCNo16 "ho" > -#define SCNu16 "hu" > -#define SCNx16 "hx" > -#define SCNX16 "hX" > -#define SCNoLEAST16 "ho" > -#define SCNuLEAST16 "hu" > -#define SCNxLEAST16 "hx" > -#define SCNXLEAST16 "hX" > -#define SCNoFAST16 "ho" > -#define SCNuFAST16 "hu" > -#define SCNxFAST16 "hx" > -#define SCNXFAST16 "hX" > - > -#define SCNo32 "lo" > -#define SCNu32 "lu" > -#define SCNx32 "lx" > -#define SCNX32 "lX" > -#define SCNoLEAST32 "lo" > -#define SCNuLEAST32 "lu" > -#define SCNxLEAST32 "lx" > -#define SCNXLEAST32 "lX" > -#define SCNoFAST32 "lo" > -#define SCNuFAST32 "lu" > -#define SCNxFAST32 "lx" > -#define SCNXFAST32 "lX" > - > -#define SCNo64 "I64o" > -#define SCNu64 "I64u" > -#define SCNx64 "I64x" > -#define SCNX64 "I64X" > -#define SCNoLEAST64 "I64o" > -#define SCNuLEAST64 "I64u" > -#define SCNxLEAST64 "I64x" > -#define SCNXLEAST64 "I64X" > -#define SCNoFAST64 "I64o" > -#define SCNuFAST64 "I64u" > -#define SCNxFAST64 "I64x" > -#define SCNXFAST64 "I64X" > - > -#define SCNoMAX "I64o" > -#define SCNuMAX "I64u" > -#define SCNxMAX "I64x" > -#define SCNXMAX "I64X" > - > -#ifdef _WIN64 // [ > -# define SCNoPTR "I64o" > -# define SCNuPTR "I64u" > -# define SCNxPTR "I64x" > -# define SCNXPTR "I64X" > -#else // _WIN64 ][ > -# define SCNoPTR "lo" > -# define SCNuPTR "lu" > -# define SCNxPTR "lx" > -# define SCNXPTR "lX" > -#endif // _WIN64 ] > - > -#endif // __STDC_FORMAT_MACROS ] > - > -// 7.8.2 Functions for greatest-width integer types > - > -// 7.8.2.1 The imaxabs function > -#define imaxabs _abs64 > - > -// 7.8.2.2 The imaxdiv function > - > -// This is modified version of div() function from Microsoft's div.c found > -// in %MSVC.NET%\crt\src\div.c > -#ifdef STATIC_IMAXDIV // [ > -static > -#else // STATIC_IMAXDIV ][ > -_inline > -#endif // STATIC_IMAXDIV ] > -imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom) > -{ > - imaxdiv_t result; > - > - result.quot = numer / denom; > - result.rem = numer % denom; > - > - if (numer < 0 && result.rem > 0) { > - // did division wrong; must fix up > - ++result.quot; > - result.rem -= denom; > - } > - > - return result; > -} > - > -// 7.8.2.3 The strtoimax and strtoumax functions > -#define strtoimax _strtoi64 > -#define strtoumax _strtoui64 > - > -// 7.8.2.4 The wcstoimax and wcstoumax functions > -#define wcstoimax _wcstoi64 > -#define wcstoumax _wcstoui64 > - > - > -#endif // _MSC_INTTYPES_H_ ] > diff --git a/include/msvc_compat/stdbool.h b/include/msvc_compat/stdbool.h > deleted file mode 100644 > index da9ee8b..0000000 > --- a/include/msvc_compat/stdbool.h > +++ /dev/null > @@ -1,16 +0,0 @@ > -#ifndef stdbool_h > -#define stdbool_h > - > -#include <wtypes.h> > - > -/* MSVC doesn't define _Bool or bool in C, but does have BOOL */ > -/* Note this doesn't pass autoconf's test because (bool) 0.5 != true */ > -typedef BOOL _Bool; > - > -#define bool _Bool > -#define true 1 > -#define false 0 > - > -#define __bool_true_false_are_defined 1 > - > -#endif /* stdbool_h */ > diff --git a/include/msvc_compat/stdint.h b/include/msvc_compat/stdint.h > deleted file mode 100644 > index d02608a..0000000 > --- a/include/msvc_compat/stdint.h > +++ /dev/null > @@ -1,247 +0,0 @@ > -// ISO C9x compliant stdint.h for Microsoft Visual Studio > -// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 > -// > -// Copyright (c) 2006-2008 Alexander Chemeris > -// > -// Redistribution and use in source and binary forms, with or without > -// modification, are permitted provided that the following conditions are > met: > -// > -// 1. Redistributions of source code must retain the above copyright > notice, > -// this list of conditions and the following disclaimer. > -// > -// 2. 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. > -// > -// 3. The name of the author may be used to endorse or promote products > -// derived from this software without specific prior written permission. > -// > -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. > -// > -/////////////////////////////////////////////////////////////////////////////// > - > -#ifndef _MSC_VER // [ > -#error "Use this header only with Microsoft Visual C++ compilers!" > -#endif // _MSC_VER ] > - > -#ifndef _MSC_STDINT_H_ // [ > -#define _MSC_STDINT_H_ > - > -#if _MSC_VER > 1000 > -#pragma once > -#endif > - > -#include <limits.h> > - > -// For Visual Studio 6 in C++ mode and for many Visual Studio versions when > -// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}' > -// or compiler give many errors like this: > -// error C2733: second C linkage of overloaded function 'wmemchr' not > allowed > -#ifdef __cplusplus > -extern "C" { > -#endif > -# include <wchar.h> > -#ifdef __cplusplus > -} > -#endif > - > -// Define _W64 macros to mark types changing their size, like intptr_t. > -#ifndef _W64 > -# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER > >= 1300 > -# define _W64 __w64 > -# else > -# define _W64 > -# endif > -#endif > - > - > -// 7.18.1 Integer types > - > -// 7.18.1.1 Exact-width integer types > - > -// Visual Studio 6 and Embedded Visual C++ 4 doesn't > -// realize that, e.g. char has the same size as __int8 > -// so we give up on __intX for them. > -#if (_MSC_VER < 1300) > - typedef signed char int8_t; > - typedef signed short int16_t; > - typedef signed int int32_t; > - typedef unsigned char uint8_t; > - typedef unsigned short uint16_t; > - typedef unsigned int uint32_t; > -#else > - typedef signed __int8 int8_t; > - typedef signed __int16 int16_t; > - typedef signed __int32 int32_t; > - typedef unsigned __int8 uint8_t; > - typedef unsigned __int16 uint16_t; > - typedef unsigned __int32 uint32_t; > -#endif > -typedef signed __int64 int64_t; > -typedef unsigned __int64 uint64_t; > - > - > -// 7.18.1.2 Minimum-width integer types > -typedef int8_t int_least8_t; > -typedef int16_t int_least16_t; > -typedef int32_t int_least32_t; > -typedef int64_t int_least64_t; > -typedef uint8_t uint_least8_t; > -typedef uint16_t uint_least16_t; > -typedef uint32_t uint_least32_t; > -typedef uint64_t uint_least64_t; > - > -// 7.18.1.3 Fastest minimum-width integer types > -typedef int8_t int_fast8_t; > -typedef int16_t int_fast16_t; > -typedef int32_t int_fast32_t; > -typedef int64_t int_fast64_t; > -typedef uint8_t uint_fast8_t; > -typedef uint16_t uint_fast16_t; > -typedef uint32_t uint_fast32_t; > -typedef uint64_t uint_fast64_t; > - > -// 7.18.1.4 Integer types capable of holding object pointers > -#ifdef _WIN64 // [ > - typedef signed __int64 intptr_t; > - typedef unsigned __int64 uintptr_t; > -#else // _WIN64 ][ > - typedef _W64 signed int intptr_t; > - typedef _W64 unsigned int uintptr_t; > -#endif // _WIN64 ] > - > -// 7.18.1.5 Greatest-width integer types > -typedef int64_t intmax_t; > -typedef uint64_t uintmax_t; > - > - > -// 7.18.2 Limits of specified-width integer types > - > -#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See > footnote 220 at page 257 and footnote 221 at page 259 > - > -// 7.18.2.1 Limits of exact-width integer types > -#define INT8_MIN ((int8_t)_I8_MIN) > -#define INT8_MAX _I8_MAX > -#define INT16_MIN ((int16_t)_I16_MIN) > -#define INT16_MAX _I16_MAX > -#define INT32_MIN ((int32_t)_I32_MIN) > -#define INT32_MAX _I32_MAX > -#define INT64_MIN ((int64_t)_I64_MIN) > -#define INT64_MAX _I64_MAX > -#define UINT8_MAX _UI8_MAX > -#define UINT16_MAX _UI16_MAX > -#define UINT32_MAX _UI32_MAX > -#define UINT64_MAX _UI64_MAX > - > -// 7.18.2.2 Limits of minimum-width integer types > -#define INT_LEAST8_MIN INT8_MIN > -#define INT_LEAST8_MAX INT8_MAX > -#define INT_LEAST16_MIN INT16_MIN > -#define INT_LEAST16_MAX INT16_MAX > -#define INT_LEAST32_MIN INT32_MIN > -#define INT_LEAST32_MAX INT32_MAX > -#define INT_LEAST64_MIN INT64_MIN > -#define INT_LEAST64_MAX INT64_MAX > -#define UINT_LEAST8_MAX UINT8_MAX > -#define UINT_LEAST16_MAX UINT16_MAX > -#define UINT_LEAST32_MAX UINT32_MAX > -#define UINT_LEAST64_MAX UINT64_MAX > - > -// 7.18.2.3 Limits of fastest minimum-width integer types > -#define INT_FAST8_MIN INT8_MIN > -#define INT_FAST8_MAX INT8_MAX > -#define INT_FAST16_MIN INT16_MIN > -#define INT_FAST16_MAX INT16_MAX > -#define INT_FAST32_MIN INT32_MIN > -#define INT_FAST32_MAX INT32_MAX > -#define INT_FAST64_MIN INT64_MIN > -#define INT_FAST64_MAX INT64_MAX > -#define UINT_FAST8_MAX UINT8_MAX > -#define UINT_FAST16_MAX UINT16_MAX > -#define UINT_FAST32_MAX UINT32_MAX > -#define UINT_FAST64_MAX UINT64_MAX > - > -// 7.18.2.4 Limits of integer types capable of holding object pointers > -#ifdef _WIN64 // [ > -# define INTPTR_MIN INT64_MIN > -# define INTPTR_MAX INT64_MAX > -# define UINTPTR_MAX UINT64_MAX > -#else // _WIN64 ][ > -# define INTPTR_MIN INT32_MIN > -# define INTPTR_MAX INT32_MAX > -# define UINTPTR_MAX UINT32_MAX > -#endif // _WIN64 ] > - > -// 7.18.2.5 Limits of greatest-width integer types > -#define INTMAX_MIN INT64_MIN > -#define INTMAX_MAX INT64_MAX > -#define UINTMAX_MAX UINT64_MAX > - > -// 7.18.3 Limits of other integer types > - > -#ifdef _WIN64 // [ > -# define PTRDIFF_MIN _I64_MIN > -# define PTRDIFF_MAX _I64_MAX > -#else // _WIN64 ][ > -# define PTRDIFF_MIN _I32_MIN > -# define PTRDIFF_MAX _I32_MAX > -#endif // _WIN64 ] > - > -#define SIG_ATOMIC_MIN INT_MIN > -#define SIG_ATOMIC_MAX INT_MAX > - > -#ifndef SIZE_MAX // [ > -# ifdef _WIN64 // [ > -# define SIZE_MAX _UI64_MAX > -# else // _WIN64 ][ > -# define SIZE_MAX _UI32_MAX > -# endif // _WIN64 ] > -#endif // SIZE_MAX ] > - > -// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h> > -#ifndef WCHAR_MIN // [ > -# define WCHAR_MIN 0 > -#endif // WCHAR_MIN ] > -#ifndef WCHAR_MAX // [ > -# define WCHAR_MAX _UI16_MAX > -#endif // WCHAR_MAX ] > - > -#define WINT_MIN 0 > -#define WINT_MAX _UI16_MAX > - > -#endif // __STDC_LIMIT_MACROS ] > - > - > -// 7.18.4 Limits of other integer types > - > -#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See > footnote 224 at page 260 > - > -// 7.18.4.1 Macros for minimum-width integer constants > - > -#define INT8_C(val) val##i8 > -#define INT16_C(val) val##i16 > -#define INT32_C(val) val##i32 > -#define INT64_C(val) val##i64 > - > -#define UINT8_C(val) val##ui8 > -#define UINT16_C(val) val##ui16 > -#define UINT32_C(val) val##ui32 > -#define UINT64_C(val) val##ui64 > - > -// 7.18.4.2 Macros for greatest-width integer constants > -#define INTMAX_C INT64_C > -#define UINTMAX_C UINT64_C > - > -#endif // __STDC_CONSTANT_MACROS ] > - > - > -#endif // _MSC_STDINT_H_ ] > -- > 2.0.0.rc2 > > _______________________________________________ > jemalloc-discuss mailing list > jemalloc-discuss@canonware.com > http://www.canonware.com/mailman/listinfo/jemalloc-discuss _______________________________________________ jemalloc-discuss mailing list jemalloc-discuss@canonware.com http://www.canonware.com/mailman/listinfo/jemalloc-discuss