make [U]INTn_C() macros have the right type...
[musl] / include / stdint.h
index 8e187a5..634678a 100644 (file)
 #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
@@ -33,8 +23,6 @@
 
 #define __NEED_intptr_t
 #define __NEED_uintptr_t
-#define __NEED_intmax_t
-#define __NEED_uintmax_t
 
 #include <bits/alltypes.h>
 
@@ -48,6 +36,9 @@ typedef uint16_t uint_least16_t;
 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)
@@ -80,32 +71,27 @@ typedef uint64_t uint_least64_t;
 #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