From 4dfaa14e775338ff9740f45be613f77bdf447f04 Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Mon, 26 Nov 2007 17:30:01 +0000 Subject: [PATCH] Respect the signedness of char. [r18538] --- lexer.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lexer.c b/lexer.c index 74f76c5..699f8ee 100644 --- a/lexer.c +++ b/lexer.c @@ -22,6 +22,17 @@ #define strtold(s, e) strtod(s, e) #endif +#define HAS_SIGNED_CHAR +//#define HAS_UNSIGNED_CHAR + +#if defined HAS_SIGNED_CHAR +typedef signed char char_type; +#elif defined HAS_UNSIGNED_CHAR +typedef unsigned char char_type; +#else +# error signedness of char not determined +#endif + static int c; token_t lexer_token; symbol_t *symbol_L; @@ -575,7 +586,7 @@ static int parse_octal_sequence(const int first_digit) if (!is_octal_digit(c)) return value; value = 8 * value + c - '0'; next_char(); - return value; + return (char_type)value; } static int parse_hex_sequence(void) @@ -594,7 +605,7 @@ static int parse_hex_sequence(void) next_char(); } - return value; + return (char_type)value; } static int parse_escape_sequence(void) -- 2.20.1