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