#define __NEED_uint32_t
#define __NEED_uint64_t
-#define __NEED_int_least8_t
-#define __NEED_int_least16_t
-#define __NEED_int_least32_t
-#define __NEED_int_least64_t
-
-#define __NEED_uint_least8_t
-#define __NEED_uint_least16_t
-#define __NEED_uint_least32_t
-#define __NEED_uint_least64_t
-
#define __NEED_int_fast8_t
#define __NEED_int_fast16_t
#define __NEED_int_fast32_t
#define __NEED_intptr_t
#define __NEED_uintptr_t
-#define __NEED_intmax_t
-#define __NEED_uintmax_t
#include <bits/alltypes.h>
typedef uint32_t uint_least32_t;
typedef uint64_t uint_least64_t;
+typedef long long intmax_t;
+typedef unsigned long long uintmax_t;
+
#if !defined __cplusplus || defined __STDC_LIMIT_MACROS
#define INT8_MIN (-1-0x7f)
#define UINT_LEAST32_MAX UINT32_MAX
#define UINT_LEAST64_MAX UINT64_MAX
-#undef WCHAR_MIN
-#undef WCHAR_MAX
-#undef WINT_MIN
-#undef WINT_MAX
-#define WCHAR_MIN INT32_MIN
-#define WCHAR_MAX INT32_MAX
-#define WINT_MIN INT32_MIN
-#define WINT_MAX INT32_MAX
-
#define INTMAX_MIN INT64_MIN
#define INTMAX_MAX INT64_MAX
#define UINTMAX_MAX UINT64_MAX
+#define WINT_MIN INT32_MIN
+#define WINT_MAX INT32_MAX
+
+#include <bits/wchar.h>
#include <bits/stdint.h>
#endif
#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
-#define INT8_C(c) c
-#define INT16_C(c) c
+#define INT8_C(c) ((int8_t) + (c))
+#define INT16_C(c) ((int16_t) + (c))
#define INT32_C(c) c
#define INT64_C(c) c ## LL
-#define UINT8_C(c) c ## U
-#define UINT16_C(c) c ## U
+#define UINT8_C(c) ((uint8_t) + (c))
+#define UINT16_C(c) ((uint16_t) + (c))
#define UINT32_C(c) c ## U
#define UINT64_C(c) c ## ULL