lex-char-unsigned.after (596B)
1 if (!is_long) { 2 /* C99 §6.4.4.4¶10: an integer character constant has type 3 * `int`. The value is what you get from converting an 4 * object of type `char` (whose value is the byte) to int. 5 * Plain `char` signedness is implementation-defined; on 6 * aarch64 AAPCS (and most modern ABIs) it is unsigned, so 7 * '\xFF' must yield 255, not -1. tcc 0.9.26 unconditionally 8 * sign-extended via int8_t — read as uint8_t instead. */ 9 tokc.i = *(uint8_t *)tokcstr.data; 10 tok = TOK_CCHAR;