make [U]INTn_C() macros have the right type...
authorRich Felker <dalias@aerifal.cx>
Tue, 4 Oct 2011 15:50:35 +0000 (11:50 -0400)
committerRich Felker <dalias@aerifal.cx>
Tue, 4 Oct 2011 15:50:35 +0000 (11:50 -0400)
...and still be valid in #if directives.

include/stdint.h

index 5400667..634678a 100644 (file)
@@ -85,13 +85,13 @@ typedef unsigned long long uintmax_t;
 
 #if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
 
 
 #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 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
 
 #define UINT32_C(c) c ## U
 #define UINT64_C(c) c ## ULL