1e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <cstdio> 2e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <cwchar> 3e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <climits> 4e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 5e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (CHAR_BIT) 6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing CHAR_BIT definition. 7e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 8e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 9e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (CHAR_BIT < 0) 10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Weird WCHAR_BIT value. 11e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (CHAR_MAX) 14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing CHAR_MAX definition. 15e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 17e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (CHAR_MIN) 18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing CHAR_MIN definition. 19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !(CHAR_MIN < CHAR_MAX) 22e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Weird CHAR_MIN or CHAR_MAX macro values. 23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 24e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 25e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (INT_MAX) 26e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing INT_MAX definition. 27e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 28e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 29e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (INT_MIN) 30e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing INT_MIN definition. 31e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !(INT_MIN < INT_MAX) 34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Weird INT_MIN or INT_MAX macro values. 35e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 36e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 37e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (LONG_MAX) 38e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing LONG_MAX definition. 39e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 40e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 41e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (LONG_MIN) 42e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing LONG_MIN definition. 43e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 44e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 45e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !(LONG_MIN < LONG_MAX) 46e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Weird LONG_MIN or LONG_MAX macro values. 47e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 48e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 49e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (SCHAR_MAX) 50e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing SCHAR_MAX definition. 51e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 52e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 53e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (SCHAR_MIN) 54e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing SCHAR_MIN definition. 55e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 56e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 57e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !(SCHAR_MIN < SCHAR_MAX) 58e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Weird SCHAR_MIN or SCHAR_MAX macro values. 59e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 60e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 61e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (SHRT_MAX) 62e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing SHRT_MAX definition. 63e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 64e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 65e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (SHRT_MIN) 66e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing SHRT_MIN definition. 67e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 68e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 69e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !(SHRT_MIN < SHRT_MAX) 70e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Weird SHRT_MIN or SHRT_MAX macro values. 71e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 72e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 73e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (WCHAR_MIN) 74e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing WCHAR_MIN definition. 75e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 76e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 77e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (WCHAR_MAX) 78e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing WCHAR_MAX definition. 79e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 80e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 81e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !(WCHAR_MIN < WCHAR_MAX) 82e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Weird WCHAR_MIN or WCHAR_MAX macro value. 83e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 84e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 85e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (UCHAR_MAX) 86e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing UCHAR_MAX definition. 87e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 88e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 89e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (UCHAR_MAX < 0) 90e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Weird UCHAR_MAX macro value. 91e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 92e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 93e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (UINT_MAX) 94e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing UINT_MAX definition. 95e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 96e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 97e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (UINT_MAX < 0) 98e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Weird UINT_MAX macro value. 99e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 100e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 101e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (ULONG_MAX) 102e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing ULONG_MAX definition. 103e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 104e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 105e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (ULONG_MAX < 0) 106e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Weird ULONG_MAX macro value. 107e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 108e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 109e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (USHRT_MAX) 110e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Missing USHRT_MAX definition. 111e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 112e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 113e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (USHRT_MAX < 0) 114e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error Weird USHRT_MAX macro value. 115e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 116